对于使用 Log4J(不是 SLF4J)的应用程序,如何将底层实现换成我们正在内部开发的东西?
For an application using Log4J (not SLF4J) how to swap the underlying implementation for something we are developing internally?
所以我有一个使用 log4j 的大型应用程序。我们正在内部开发自己的日志实现,它与 log4j 无关,但它符合 log4j API 的日志记录。因此,我们只想以某种方式将 log4j 替换为我们的日志实现而不更改代码中的任何内容,换句话说,它将继续使用 log4j API 和我们的日志实现。
有没有人这样做过或知道如何去做?
如果我使用 SLF4J 会很容易,但不幸的是我没有。
最好的办法是将自定义日志记录框架编写为 slf4j 实现。
然后,从 class 路径中删除 log4j 并放入 log4j-over-slf4j 桥中。
http://www.slf4j.org/legacy.html
log4j-over-slf4j 桥将接受对 log4j 的任何调用,并通过 slf4j 重定向到您在 class 路径上使用的任何 slf4j 子系统,在本例中是您的自定义库。
所以我有一个使用 log4j 的大型应用程序。我们正在内部开发自己的日志实现,它与 log4j 无关,但它符合 log4j API 的日志记录。因此,我们只想以某种方式将 log4j 替换为我们的日志实现而不更改代码中的任何内容,换句话说,它将继续使用 log4j API 和我们的日志实现。
有没有人这样做过或知道如何去做?
如果我使用 SLF4J 会很容易,但不幸的是我没有。
最好的办法是将自定义日志记录框架编写为 slf4j 实现。
然后,从 class 路径中删除 log4j 并放入 log4j-over-slf4j 桥中。 http://www.slf4j.org/legacy.html
log4j-over-slf4j 桥将接受对 log4j 的任何调用,并通过 slf4j 重定向到您在 class 路径上使用的任何 slf4j 子系统,在本例中是您的自定义库。