我想实现一个自定义记录器,它将所有日志条目记录到数据库中。目前我的应用程序以这种方式记录(slf4j 和 log4j 绑定):
private static final Logger logger = LoggerFactory.getLogger( MyClass.class );
我不确定如何进行。我的想法是通过实现org.slf4j.Logger 接口来实现自定义日志绑定
接下来的步骤是什么?我的目标是不更改当前代码
我考虑过的链接:
我想实现一个自定义记录器,它将所有日志条目记录到数据库中。目前我的应用程序以这种方式记录(slf4j 和 log4j 绑定):
private static final Logger logger = LoggerFactory.getLogger( MyClass.class );
我不确定如何进行。我的想法是通过实现org.slf4j.Logger 接口来实现自定义日志绑定
接下来的步骤是什么?我的目标是不更改当前代码
我考虑过的链接:
这应该相当容易。您需要实现自己的Logger
和LoggerFactory
. 您根本不必更改现有代码。
之后,您需要实现StaticLoggerBinder
以返回您的记录器工厂和类名。如果您下载 slf4j zip 文件,那么您也可以获得所有实现的源代码,只需查看 slf4j-log4j 中的 StaticLoggerBinder 作为示例。
您不必编写自己的日志实现,将日志框架切换到logback怎么样?Loback 支持本地记录到数据库。当您两次使用 SLF4J API 时,您的代码不会改变。
看看ch.qos.logback.classic.db.DBAppender。如果默认的表格布局不符合您的需求,您可以实现ch.qos.logback.classic.db.names.DBNameResolver来自定义表格和列名。