log4j不生成log文件

时间:2022-01-05 21:52:01

系统需要日志记录,今天配置了下log4j生成log文件。在main方法运行测试方法,控制台打印,也生成了log文件。但是在程序正常运行后,就只能在控制台打印了,不能生成log文件。 - - 好吧,愁死我了…为什么呢…上网查了查前辈们的资料,貌似挺简单哈log4j不生成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