log4j迁移到log4j2

时间:2015-06-24 09:59:40

标签: java logging log4j log4j2

Log4j迁移指南

https://logging.apache.org/log4j/2.x/manual/migration.html

说明

调用接受LoggerFactory的org.apache.log4j.Logger.getLogger必须删除org.apache.log4j.spi.LoggerFactory并使用Log4j 2的其他扩展机制之一。

log4j2中有哪些扩展机制,以及如何在log4j2中最好地迁移如下方法

private static TraceLoggerFactory stTraceFactory = new TraceLoggerFactory();

public static Logger getTraceLogger(final String name) {
    return getLogger(name, stTraceFactory);
}


class TraceLoggerFactory implements LoggerFactory {
    @Override
    public Logger makeNewLoggerInstance(final String name) {
        return new TraceLogger(name);
    }
}

1 个答案:

答案 0 :(得分:2)

您发布的代码未显示使用接受getLogger的{​​{1}}方法,因此我假设您正在调用LoggerFactory方法并将其传递给您{ {1}}。

Extending Log4j page上列出了“其他扩展机制”。

就如何最好地迁移代码而言,如果不了解当前自定义的目的,则无法提供建议。例如 - getLogger的目的是什么?

我建议您花点时间更详细地研究log4j,并确定您是否真的需要自定义,或者是否可以使用log4j提供的功能。定制可以增加您的长期维护,只有在绝对必要时才能完成。