如何让FLOW日志可以输出到控制台,又不会输出到SYS日志文件里去?我现在是可以不输出到SYS中,但是也不会输出到控制台了。 log4j.rootLogger=INFO,SYS,stdout log4j.logger.FLOW=DEBUG,FLOW log4j.additivity.FLOW=false log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Threshold = DEBUG log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=[%t][%d][%p][%F:%L]%m%n log4j.appender.SYS=org.apache.log4j.DailyRollingFileAppender log4j.appender.SYS.Threshold = INFO log4j.appender.SYS.file=../log/sys.log log4j.appender.SYS.DatePattern="".""yyyy-MM-dd log4j.appender.SYS.layout=org.apache.log4j.PatternLayout log4j.appender.SYS.layout.ConversionPattern=[%t][%d][%p][%F:%L]%m%n log4j.appender.FLOW=org.apache.log4j.DailyRollingFileAppender log4j.appender.FLOW.file=../log/flow.log log4j.appender.FLOW.layout=org.apache.log4j.PatternLayout log4j.appender.FLOW.layout.ConversionPattern=%d|%m%n |
|
log4j只会最简单的配置,不太方便。
可以试试Logback(Log4J的升级版,同一个人开发的),配置挺简单的,实现你的这个要求也很简单,修改一行配置就能实现。 |
|
40分 |
log4j.rootLogger=INFO,SYS,stdout 去掉这里的SYS和后面SYS的配置
|
你在输出日志的代码那里用的是什么级别?你的FLOW定义为DEBUG级别,那么你企图输出的日志必须大于这个级别才能生效,such as logger.debug() 或者 logger.error()。
|
|
谢谢!我知道怎么配了。 log4j.rootLogger=DEBUG,stdout log4j.logger.SYS=DEBUG,SYS log4j.logger.FLOW=DEBUG,FLOW log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Threshold = DEBUG log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=[%d][%p][%F:%L]%m%n log4j.appender.SYS=org.apache.log4j.DailyRollingFileAppender #log4j.appender.SYS.Threshold = DEBUG log4j.appender.SYS.file=../log/sys.log log4j.appender.SYS.DatePattern="".""yyyy-MM-dd log4j.appender.SYS.layout=org.apache.log4j.PatternLayout log4j.appender.SYS.layout.ConversionPattern=[%t][%d][%p][%F:%L]%m%n log4j.appender.FLOW=org.apache.log4j.DailyRollingFileAppender log4j.appender.FLOW.file=../log/flow.log log4j.appender.FLOW.DatePattern="".""yyyy-MM-dd log4j.appender.FLOW.layout=org.apache.log4j.PatternLayout log4j.appender.FLOW.layout.ConversionPattern=%d|%m%n 这样就可以了,Logger.getLogger(ClassNamexxx.class)这样的就只输出控制台,Logger.getLogger(”SYS“)这样的输出控制台又输出日志文件,Logger.getLogger(”FLOW“)也是只输出控制台又输出到flow文件。就是flow,sys共同继承stdout,所以两者的输出也会输出到stdout。如果不想继承父log也可以通过配置log4j.additivity.FLOW=false,这样FLOW日志只会输出到文件,不会输出到终端了。 |