当前位置: 首页 > 面试题库 >

使用slf4j实现自定义记录器

郭阳泽
2023-03-14
问题内容

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

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

我不确定如何进行。我的想法是通过实现org.slf4j.Logger接口来实现自定义日志记录绑定

下一步将是什么?我的目标是不更改当前代码

我考虑过的链接:

  • http://www.slf4j.org/manual.html

问题答案:

它应该相当容易。您需要实现自己的LoggerLoggerFactory。您完全不必更改现有代码。

之后,您需要实现StaticLoggerBinder以返回记录器的工厂名称和类名称。如果下载slf4j
zip文件,那么您也可以获得所有实现的源代码,仅以slf4j-log4j中的StaticLoggerBinder为例。

请查看此链接以获取详细信息:http :
//www.slf4j.org/faq.html#slf4j_compatible



 类似资料:
  • 我有一个使用slf4j进行日志记录的应用程序。现在我想添加一个功能,每当我记录错误时,就会调用一个特定的url。目前,我在应用程序级别添加了一个包装器方法,该方法发送http请求,然后调用logger方法。但这样我就错过了一些输出,一些异常只是被记录下来,而没有发送相应的请求。我正在尝试创建我的自定义logger类。我的问题是应该扩展哪些类(或要实现的接口)。我无法扩展Logger类,因为它的构造

  • 我有这些具体要求: 需要能够登录致命级别 现在,我的实现如下: 这是我的模式布局(在yaml): 以下是我的日志输出: 你知道如何有效地从日志输出中删除“错误”吗? 非常感谢你

  • 问题内容: 下面一些Groovy类中的方法由其他我不知道的其他管道脚本类调用。 所有的println语句已被logger.info取代。 log4j2-test.properties Jenkins作业控制台上的输出(下面仅显示相关部分): 我配置的记录器可能未调用 运行时实例为OutputEventListenerBackedLogger 即使我更改了logger语句,它们也不会反映在输出中,但

  • 我正在为log4j2编写一个自定义包装器。使用https://logging.apache.org/log4j/2.x/manual/customloglevels.html#Customlogggers 要求是根据要记录的对象类型选择追加器。我想的方法是扩展log4j2记录器并覆盖log方法(如info),在这些方法中检查对象类型并调用所需的appender。 现在我想让我的应用程序使用slf4

  • 将PostSharp用于C#应用程序,我有以下场景: Namespace_ACustomLoggingMethod Namespace_B.DoThings thingMethod(实际上是几种不同的方法) DoMomthingMethod调用CustomLoggingMethod,它以所需的格式创建日志条目并且运行良好。正如预期的那样,日志条目将源记录为CustomLoggingMethod,我

  • 我使用新的API创建了一个kafka消费者(http://kafka.apache.org/090/javadoc/index.html?org/apache/kafka/clients/consumer/kafkaConsumer.html) 当前,使用者正在从最小的偏移量开始读取主题中的消息。我想重写这个以读取最新的偏移量。有什么关于如何做到这一点的指示吗?