# Set root category priority to INFO and its only appender to CONSOLE.
log4j.rootCategory=FATAL, CONSOLE
# log4j.rootCategory=DEBUG, LOGFILE

# Set the enterprise logger category to FATAL and its only appender to CONSOLE.
# log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE
# log4j.logger.org.apache.axis.i18n.ProjectResourceBundle=INFO
# log4j.logger.org.apache.ws.security.TIME=DEBUG
# log4j.logger.org.apache.ws.security.message.EnvelopeIdResolver=DEBUG
# log4j.logger.org.apache.ws.security.message.WSEncryptBody=INFO
# log4j.logger.org.apache.ws.security.message.WSSignEnvelope=DEBUG
# log4j.logger.org.apache.ws.security.processor.ReferenceListProcessor=DEBUG
# log4j.logger.org.apache.ws.axis.security.WSDoAllSender=DEBUG
# log4j.logger.org.apache.ws.axis.security.WSDoAllReceiver=DEBUG
# log4j.logger.org.apache.ws.security.transform.STRTransform=DEBUG
# log4j.logger.org.apache.ws.security.WSSecurityEngine=DEBUG
# log4j.logger.org.apache.ws.security.WSSConfig=DEBUG
# log4j.logger.org.apache.ws.security.message.token.SecurityTokenReference=DEBUG
# log4j.logger.org.apache.ws.security.components.crypto.Merlin=DEBUG
# log4j.logger.org.apache.xml.security.encryption.XMLCipher=DEBUG
# log4j.logger.org.apache.xml.security.algorithms.SignatureAlgorithm=INFO
# log4j.logger.org.apache.xml.security.signature.XMLSignature=DEBUG
# log4j.logger.org.apache.xml.security.Init=INFO
# log4j.logger.org.apache.axis.encoding.ser.JAFDataHandlerDeserializerFactory=INFO
# log4j.logger.org.apache.axis.i18n.ProjectResourceBundle=INFO
# log4j.logger.org.apache.axis.utils.NSStack=INFO
# log4j.logger.org.apache.axis.encoding.SerializationContextImpl=INFO
# log4j.logger.org.apache.axis.encoding.DeserializationContextImpl=INFO
# log4j.logger.org.apache.xml.security.signature.Reference=DEBUG
# log4j.logger.wssec.TestWSSecurity=DEBUG
# log4j.logger.wssec.TestWSSecurityNew=DEBUG
# log4j.logger.wssec.TestWSSecurity1=DEBUG
# log4j.logger.wssec.TestWSSecurity2=DEBUG
# log4j.logger.wssec.TestWSSecurityNew2=DEBUG
# log4j.logger.wssec.TestWSSecurity3=DEBUG
# log4j.logger.wssec.TestWSSecurity4=DEBUG
# log4j.logger.wssec.TestWSSecurity5=DEBUG
# log4j.logger.wssec.TestWSSecurityNew5=DEBUG
# log4j.logger.wssec.TestWSSecurity6=DEBUG
# log4j.logger.wssec.TestWSSecurity7=DEBUG
# log4j.logger.wssec.TestWSSecurity8=DEBUG
# log4j.logger.wssec.TestWSSecurity9=DEBUG
# log4j.logger.wssec.TestWSSecurityNew9=DEBUG
# log4j.logger.wssec.TestWSSecurity10=DEBUG
# log4j.logger.wssec.TestWSSecurity11=DEBUG
# log4j.logger.wssec.TestWSSecurity12=DEBUG
# log4j.logger.wssec.TestWSSecurity13=DEBUG
# log4j.logger.wssec.TestWSSecurity14=DEBUG
# log4j.logger.wssec.TestWSSecurityNew15=DEBUG
# log4j.logger.wssec.TestWSSecurityST1=DEBUG
# log4j.logger.wssec.TestWSSecurityNewST1=DEBUG
# log4j.logger.wssec.TestWSSecurityST2=DEBUG
# log4j.logger.wssec.TestWSSecurityNewST2=DEBUG
# log4j.logger.wssec.TestWSSecurityST3=DEBUG
# log4j.logger.wssec.TestWSSecurityNewST3=DEBUG
# log4j.logger.wssec.TestWSSecuritySOAP12=DEBUG
# log4j.logger.org.apache.ws.security.handler.WSS4JHandler=DEBUG
# log4j.logger.org.apache.ws.security.handler.WSHandler=DEBUG
log4j.logger.policy.WSSPolicyTesterAsymm=DEBUG
log4j.logger.org.apache.ws.security.policy.parser.WSSPolicyProcessor=ERROR

# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=DEBUG
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=- %m%n

# LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=axis.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.Threshold=DEBUG
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
