log4j输出info,error问题
配置文件如下
### Log4j Config ###
log4j.rootLogger=info,error,stdout,info,error
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c - %m%n
log4j.logger.info=info
log4j.appender.info=org.apache.log4j.DailyRollingFileAppender
log4j.appender.info.layout=org.apache.log4j.PatternLayout
log4j.appender.info.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c - %m%n
log4j.appender.info.datePattern='.'yyyy-MM-dd
log4j.appender.info.Threshold = INFO
log4j.appender.info.append=true
log4j.appender.info.File=d:\\init\\info.log
log4j.logger.error=error
log4j.appender.error=org.apache.log4j.DailyRollingFileAppender
log4j.appender.error.layout=org.apache.log4j.PatternLayout
log4j.appender.error.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c - %m%n
log4j.appender.error.datePattern='.'yyyy-MM-dd
log4j.appender.error.Threshold = ERROR
log4j.appender.error.append=true
log4j.appender.error.File=d:\\init\\error.log
类里面调用
private final static Logger logger_info = Logger.getLogger(Init.class.getName());
private final static Logger logger_error = Logger.getLogger(Init.class.getName());
public static void main(String args[]){
logger_error.error("logger_error");
logger_info.info("logger_info");
}
问题是error的信息也会写到info.log里面
哪里错了?谢谢!!!!
------解决方案--------------------
error和info还要定义成两个Logger,这不是麻烦死了。。。
建议不要用properties来配置,难用的很。用XML来配置就行了,log4j支持的更好。
参见:
http://popomonkey.iteye.com/blog/744693
这样使用的时候很简单:
private static final Logger log = Logger.getLogger(Init.class);
log.debug("debug...");
log.info("info...");
log.warn("warn...");
log.error("error...");
一个log,自动分配不同文件。