java - Websphere 上的 Log4j LEVEL NULL

标签 java logging log4j websphere

所以,我有一个主要使用 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 没问题,我不明白。

最佳答案

我也遇到了类似的问题。 尝试在记录器名称中省略下划线('_')。 尝试使用“DELETELOGGER”而不是“DELETE_LOGGER”。

关于java - Websphere 上的 Log4j LEVEL NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30897825/

相关文章:

c# - 如何将 Microsoft.Extensions.Logging 与 Application Insights 结合使用来记录事件和指标

java - 如何在通过 http 发送时从 log4j 日志中隐藏用户名和密码

java - NullPointerException:键== null ||值==空

java - 为什么在没有显式调用的情况下会调用默认函数?

c# - 如何在多线程应用程序中执行文件日志记录

java - 为什么我会出现无法调用类布局.XmlLayout 中的工厂方法?

java - Spring ApplicationContext bean 加载了两次

java - 如何创建 MyLogger?

java - Java内置库中的两个链接如何链接在一起?

java - 如何在不破坏 Maven 发布插件的情况下传递 javac 多个命令行参数,其中一些参数包括冒号?