# Set root logger level to DEBUG and its only appender to A1.
log4j.rootLogger=TRACE, A1, rollingFile

# A1 is set to be a ConsoleAppender.
log4j.appender.A1=org.apache.log4j.ConsoleAppender

# A1 uses PatternLayout.
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.target=System.err
#log4j.appender.A1.layout.ConversionPattern=%d{dd-MMM HH:MM:SS,SSS} %p %c %m%n
#log4j.appender.A1.layout.ConversionPattern=%d{hh:mm:ss,SSS} %-14t %-14c  %m%n
log4j.appender.A1.layout.ConversionPattern=%d{ss,SSS} %-5p %-12c  %m%n

log4j.appender.rollingFile=org.apache.log4j.RollingFileAppender
log4j.appender.rollingFile.File=logfile.txt
log4j.appender.rollingFile.MaxFileSize=10MB
log4j.appender.rollingFile.MaxBackupIndex=9
log4j.appender.rollingFile.layout = org.apache.log4j.PatternLayout
log4j.appender.rollingFile.layout.ConversionPattern=%d{ss,SSS} %-5p %-12c  %m%n

#log4j.logger.Executor = ERROR
#log4j.logger.Sync.Log = ERROR
#log4j.logger.Sync.Core = TRACE
#log4j.logger.Scheduler = ERROR
#
#log4j.logger.Fetcher = TRACE
#log4j.logger.FetchManager = TRACE

#log4j.logger.Sync = DEBUG
#log4j.logger.Sync.Log = ERROR
#log4j.logger.SyncInterestTable = TRACE
#log4j.logger.AppDataFetch = TRACE
#log4j.logger.Test = TRACE
#log4j.logger.bgpparser=TRACE
#log4j.logger.bgpparser.AttributeType=ERROR
#log4j.logger.bgpparser.MRTCommonHeader=ERROR

