系统需要日志记录,今天配置了下log4j生成log文件。在main方法运行测试方法,控制台打印,也生成了log文件。但是在程序正常运行后,就只能在控制台打印了,不能生成log文件。 - - 好吧,愁死我了…为什么呢…上网查了查前辈们的资料,貌似挺简单哈
首先配置 log4j.properties 文件,放于src下。
内容:
log4j.rootLogger=info,console,file
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%-5p] %m%n
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.DatePattern='-'yyyy-MM-dd
log4j.appender.file.File=./logs/mct.log
log4j.appender.file.Append=true
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%-5p] %d %37c %3x - %m%n
新建Test,main方法测试
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Test {
private static Logger log = LoggerFactory.getLogger(Test.class);
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
log.info("测试");
}
}
控制台打印正确。在工程目录下,自动创建logs文件夹,并生成mct.log文件
高兴啊。启动工程,点击操作,然后…发现控制台正确打印了,但是日志没有生成啊…我擦…
解决办法:
log4j.appender.file.File=./logs/mct.log
改为
log4j.appender.file.File=E:/space/logs/mct.log
把相对路径修改为绝对路径,解决问题。
(项目部署后,控制台就不需要打印了,
去掉一下内容就行了
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%-5p] %m%n
)