log无法写入logfile,而是写入控制台

时间:2013-12-14 02:44:59

标签: java maven log4j

我的项目log4j.properties在classpath中 但是当我使用mvn程序集时:汇编一个* .tar.gz 然后tar xvf x.tar.gz

java -cp lib/*:. Test.main

日志输出到控制台,而不是输出到log4j.properites分配日志文件。

➜   git:(master) ✗ ls -al lib/*log*
-rw-r--r--  1 fuyou  staff   60686  8 12 16:47 lib/commons-logging-1.1.1.jar
-rw-r--r--  1 fuyou  staff  367444  8  1 08:47 lib/log4j-1.2.14.jar
-rw-r--r--  1 fuyou  staff   20573 12  5 10:10 lib/logging-1.0.jar
-rw-r--r--  1 fuyou  staff   10792  8  1 08:47 lib/logstat-client-1.0.2.jar
-rw-r--r--  1 fuyou  staff   23786  8  1 08:47 lib/logstat-common-1.0.1.jar
-rw-r--r--  1 fuyou  staff    8869  9  4 15:28 lib/slf4j-log4j12-1.7.5.jar
➜   git:(master) ✗ ls -al lib/*slf*
-rw-r--r--  1 fuyou  staff  26084  8 12 08:40 lib/slf4j-api-1.7.5.jar
-rw-r--r--  1 fuyou  staff   8869  9  4 15:28 lib/slf4j-log4j12-1.7.5.jar
➜   git:(master) ✗ ls -al lib/*jcl-over-slf4j*
zsh: no matches found: lib/*jcl-over-slf4j*
➜   git:(master) ✗ ls -al lib

添加log4j.properties

log4j.rootLogger=info, root
log4j.appender.root=org.apache.log4j.DailyRollingFileAppender
log4j.appender.root.DatePattern='.'yyyy-MM-dd
log4j.appender.root.File=logs/test.log
log4j.appender.root.layout=org.apache.log4j.PatternLayout
log4j.appender.root.layout.ConversionPattern=%d %-5p %c{2}  %m%n
log4j.appender.root.Append=true

1 个答案:

答案 0 :(得分:1)

你是否在类路径上有log4j.properties?它需要出现在类路径的某个地方(理想情况下在根目录中)。

您可以运行java -cp lib/*:. -Dlog4j.debug Test.main以查看正在加载的log4j配置文件。如果它不是你的log4j.properties,你可能需要移动你的log4j来获取它。

另一种选择是使用java -cp lib/*:. -Dlog4j.configuration=log4j.properties Test.main(注意我只使用过log4j.xml,所以我不能保证它可以用于log4j.properties)。