问题描述
想要的效果就是在控制台打印出来的日志能够保存在每日文件中,每次生成日志后都要有刷新。附上配置文件。希望大神能解决。log4j.rootLogger=INFO, console,file# Pattern to output the caller's file name and line number.log4j.appender.console=org.apache.log4j.ConsoleAppenderlog4j.appender.console.layout=org.apache.log4j.PatternLayoutlog4j.appender.console.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} %5p [%t] (%F:%L) - %m%nlog4j.appender.file=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.file.DatePattern=yyyy-MM-dd'.log'log4j.appender.file.File=Z:\logs\run_log4j.appender.file.BufferSize=1klog4j.appender.file.ImmediateFlush=truelog4j.appender.file.BufferedIO=falselog4j.appender.file.Append=truelog4j.appender.file.layout=org.apache.log4j.PatternLayoutlog4j.appender.file.layout.ConversionPattern==%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n 问题补充:还有个额外的小问题,在控制台打印出来的: INFO [http-8080-1] (LoginAction.java:55) - start这个不应该是根据log4j.appender.console.layout.ConversionPattern的配置来显示的么?为什么没有时间呢?打印日志的语句非常简单,代码如下:static Logger logger = Logger.getLogger(LoginAction.class.getName());logger.info("start") ;新学log4j,各种问题,望诸君不吝赐教!
解决方案
可能是因为:你正在编辑的log4j配置文件并不是程序运行时候读到的那个,在eclipse用ctrl+shift+r看看有没有其他的log4j配置跟你实际运行效果符合的