【发布时间】:2012-11-05 04:09:13
【问题描述】:
在我的应用程序中,我读入了一个输入文件(例如 myFile1.txt)并创建了一个具有相同名称的输出文件(例如 myFile2log)。重点是输入文件将在 java 应用程序中读取,而不是作为命令行参数给出。因此需要在应用程序中设置一个appender,例如
public class Example {
private static final Logger LOG = Logger.getLogger(Example.class);
public Example() throws IOException {
FileAppender appender = new DailyRollingFileAppender(new PatternLayout(
PatternLayout.DEFAULT_CONVERSION_PATTERN), "yourfilename.log",
"'.'yyyy-MM-dd");
LOG.addAppender(appender);
LOG.setLevel((Level) Level.DEBUG);
LOG.debug("blabla");
new RandomClass();
}
public static void main(String[] args) throws IOException {
new Example();
}
}
public class RandomClass {
private static final Logger LOG = Logger.getLogger(RandomClass.class);
public RandomClass() {
LOG.debug("hello Randomclass");
}
}
问题是:如果我执行上述操作,自定义文件附加程序仅适用于定义文件附加程序的特定类,但不适用于任何其他类。因此,“RandomClass”的输出不会写入此日志文件,但这是必需的。我怎样才能做到这一点?
【问题讨论】:
-
您不能在应用程序旁边使用 log4j.properties 文件来指定附加程序吗?
-
是的,我在我的应用程序旁边使用了一个 log4j.properties 文件来设置其他设置。但我不知道如何动态调整“全局”fileappender 日志文件。
标签: java log4j configure fileappender