jar包外的log4j.properties可以通过-Dlog4j.configuration=mylogging.properties指定.
jar包中是否包含log4j.properties (建议不要把log4j配置文件放到jar包中)
maven中放在 src/main/resources目录下, mvn install之后会放到jar包中.
如果是使用eclipse的导出,,则需要放到src/main/java目录下
检查jar包中是否包含了此文件
[root@usp bin]# jar tvf /opt/xxxxx.jar | grep log4j
713 Sun Nov 24 10:55:10 CST 2013 log4j.properties
查看是否有多个jar包包含log4j.properties文件
[root@usp lib]# for i in $(ls ); do echo $i;jar tvf $i | grep log4j.properties; done
xxx-0.0.1-SNAPSHOT.jar
695 Thu Sep 05 14:28:04 CST 2013 log4j.properties
xxx-0.0.1-SNAPSHOT.jar
713 Sun Nov 24 13:45:30 CST 2013 log4j.properties
检查运行的程序是否打开了日志文件 (没...)
[root@usp bin]# lsof | grep .log$
auditd 2407 root 5w REG 8,2 2730867 1801397 /var/log/audit/audit.log
rsyslogd 2480 root 0u unix 0xffff81013de8b980 0t0 6659 /dev/log
rsyslogd 2480 root 11w REG 8,2 418 1801900 /var/log/maillog
java 17944 root 3w REG 8,2 0 2161077 /opt/usp/monitor-analyse/log/gc.log
检查日志文件路径是否存在,可能写错了... (撞墙...)
[root@usp monitor-analysis]# ls /opt/usp/monitor-analyse/log
ls: /opt/usp/monitor-analyse/log: 没有那个文件或目录
[root@usp monitor-analysis]# pwd
/opt/usp/monitor-analysis
直接代码中配置
private static final Logger logger;
private static final String confFolder;
static {
confFolder = System.getProperty("user.dir") + "/../conf/";
PropertyConfigurator.configure(confFolder + "log4j.properties");
logger = Logger.getLogger(Main.class);
}