【发布时间】:2017-04-12 23:45:51
【问题描述】:
我需要定期将文本消息附加到文本文件中,并且我想搭载 log4j 以简化生活。所以我创建了一个带有 DailyRollingFileAppender 的“mylog.properties”文件——没有什么不寻常的——我把那个文件放在我的 src/java/resources 目录中。所以现在我已经准备好从这个文件创建一个记录器并开始使用它进行记录,如下所示:
class MyClass {
private static final Logger myLog = getLoggerConfiguredFromPropertiesFile("mylog.properties");
public void logSomething(String message) {
myLog.info(message);
}
}
那么 getLoggerConfiguredFromPropertiesFile 的逻辑是什么?
谢谢, 阿尔瓦罗
【问题讨论】:
-
Log4j 使用全局数据。您不能在应用程序中拥有多个 Log4j 实例(不使用多个类加载器,这完全是矫枉过正)。以预期的方式使用 Log4j,或使用其他方式。
-
我明白了,所以问题是 Log4j 有静态数据。这太糟糕了,因为我真的可以使用 DailyRollingFileAppender 的功能。