使用slf4j实现Custom Logger

时间:2010-04-16 14:49:49

标签: java slf4j

我想实现一个自定义记录器,它将所有日志条目记录到数据库中。 目前我的应用程序以这种方式记录(slf4j和log4j绑定):

private static final Logger logger = LoggerFactory.getLogger( MyClass.class );

我不知道该怎么办。 我的想法是实现自定义日志记录绑定 通过实施org.slf4j.Logger Interface

接下来的步骤是什么? 我的目标是不改变当前的代码

我考虑的链接:

2 个答案:

答案 0 :(得分:32)

应该相当容易。您需要实施自己的LoggerLoggerFactory。您根本不需要更改现有代码。

完成此操作后,您需要实现StaticLoggerBinder以返回您的记录器工厂和类名。如果您下载了slf4j zip文件,那么您也可以获得所有实现的源代码,只需查看slf4j-log4j中的StaticLoggerBinder即可获得示例。

查看此链接了解详情:http://www.slf4j.org/faq.html#slf4j_compatible

答案 1 :(得分:5)

您不必编写自己的日志记录实现,如何将日志记录框架切换到logback? Loback支持本地记录到数据库。当您使用SLF4J API时,您的代码都不会改变。

看看ch.qos.logback.classic.db.DBAppender。如果默认表格布局不符合您的需求,您可以实施ch.qos.logback.classic.db.names.DBNameResolver来自定义表格和名称。