【发布时间】:2017-06-30 10:45:10
【问题描述】:
我使用 Log4J 来记录应用程序运行时进程。 这是我的 log4j.properties 文件:
log4j.rootLogger=INFO, DailyRollingFile
log4j.appender.DailyRollingFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.DailyRollingFile.File=${CATALINA_HOME}/logs/fnservice.log
log4j.appender.DailyRollingFile.append = true
log4j.appender.DailyRollingFile.DatePattern='.'yyyy-MM-dd
log4j.appender.DailyRollingFile.layout=org.apache.log4j.PatternLayout
log4j.appender.DailyRollingFile.layout.ConversionPattern=%d{HH:mm:ss} %-5p %t %c{1} %M:%L - %m%n'
我已经在 Tomcat 上部署了应用程序并调用了一些它的方法来获取日志消息。在这些操作之后,进入 ${CATALINA_HOME}/logs 文件夹,我得到了一些 .log 文件:
- catalina.2017-02-12.log; (没有我的应用消息)
- catalina.out; (没有我的应用消息)
- 主机管理器.2017-02-12.log; (雇佣)
- localhost.2017-02-12.log; (没有我的应用消息)
- localhost_access_log.2017-02-11.txt; (没有我的应用消息)
- manager.2017-02-11.log。 (空)
在我的应用程序中,我将记录器设为:
//the code inside the MyClass class
Logger LOG = Logger.getLogger(MyClass.class);
我还尝试使用 INFO 和 ERROR 级别记录消息。
因此,我得到了列出的文件,但没有人包含我的日志消息。而且好像滚动也行不通。
【问题讨论】:
-
我通过将 log4j.properties 中的一行替换为 log4j.appender.DailyRollingFile.File=${catalina.home}/logs/fnservice.log 解决了这个问题但我还有另一个问题:如果我在 WebSphere 上部署我的应用程序,有必要修复 log4j.properties 文件。如何将我的 log4j 设置为独立于平台?谢谢。