所以,我有一个主要使用Apache Commons Logging的遗留应用程序,但是使用Log4J做了一些事情。在我的情况下,当用户将某些内容删除到特定文件时,我必须使用Log4J来编写一些日志,文件名只在运行时知道,所以我所做的就是在log4j.xml中有一个记录器:
<logger name="DELETE_LOGGER" additivity="false">
<level value="INFO" />
</logger>
在应用程序开始时加载的servlet中,我有:
RollingFileAppender appender = new RollingFileAppender(
new PatternLayout(PATTERN),
deleteFileName);
appender.setMaxBackupIndex(1);
appender.setMaxFileSize("1MB");
appender.setName("DELETE_APPENDER");
appender.setThreshold(Level.INFO);
appender.setAppend(true);
appender.activateOptions();
Logger logger = Logger.getLogger("DELETE_LOGGER");
logger.removeAllAppenders();
logger.addAppender(appender);
然后我有一个实用程序类:
Logger LOGGER = Logger.getLogger("DELETE_LOGGER");
LOGGER.info(message);
我在Tomcat上没有任何问题,在Websphere上创建了文件,但没有记录任何内容。我终于发现Websphere上的记录器级别 null 而不是 INFO 。有谁知道为什么? log4j.xml没问题,我不明白。
答案 0 :(得分:0)
我有类似的问题。 尝试在记录器名称中省略下划线('_')。 尝试使用“DELETE_LOGGER”的“DELETELOGGER”。