【问题标题】:log4j logging to two different files with one Logger onlylog4j 仅使用一个 Logger 记录到两个不同的文件
【发布时间】:2017-06-22 11:48:19
【问题描述】:

我已经阅读了这里的所有帖子,尽管我的问题重复了其他问题,但没有一个答案真正回答了我的问题:

我有一个相当大的项目,几乎每个班级都有一个记录器。我不会继续只使用这个 Logger,我希望它能够创建 - 带有 INFO 和 ERROR 的日志文件 - 仅包含 ERROR 的单独日志文件

这是用于记录的代码:

static Logger log = Logger.getLogger(TestLogger.class);

public static void main(String[] args) {

    log.debug("debug");
    log.info("info");
    log.error("error");

}

这就是我认为我可以配置它的方式,省略了布局的东西。

log4j.rootLogger=INFO, stdout, file
log4j.logger.errors = ERROR, stdout, file, file2

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

...

log4j.appender.file=metaobjects.io.CustomFileAppender
log4j.appender.file.File=c:/temp/execution%timestamp/test.log

...

log4j.appender.file2=metaobjects.io.CustomFileAppender
log4j.appender.file2.File=c:/temp/execution%timestamp/error.log

有什么方法可以得到我想要的,或者我需要在每个类中使用两个 Logger 对象吗?

【问题讨论】:

    标签: java logging log4j


    【解决方案1】:

    您将需要创建多个具有不同阈值的附加程序。

    请记住,debug 将消耗 error 并将消耗 info 日志记录。

    尝试查看本教程 https://veerasundar.com/blog/2009/08/log4j-tutorial-additivity-what-and-why/

    【讨论】:

    • 我确实有不同的附加程序,文件和文件2,但只有第一个真正创建了一个日志文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多