java - Spring、SLF4J 和 Logback - 自定义数据库附加程序

标签 java spring logging slf4j logback

我是 Spring、SLF4J 和 Logback 的新手。我正在尝试实现一个自定义数据库 Appender,它只会在 Spring Batch 处理期间将特定类型的异常记录到数据库中。

到目前为止,我已经开始设置一个扩展 AppenderBase 类的 Logback 数据库 Appender,然后在 spring 中设置一个扩展 InitializingBean 的初始化程序,以便在 Spring 初始化后将 appender 添加到根记录器(这样我就可以使用我的数据库来自 spring.xml 的信息)。

如何设置此附加器/记录器以便我只能将某些异常记录到我的自定义表中?

编辑:在做了更多研究之后,让我再问一个问题来验证。如果我要创建一个像“SpecialExceptionLogger”这样的自定义记录器,我可以只将 DB Appender 添加到那个特定的记录器,然后在我得到特殊异常时使用那个记录器吗?

最佳答案

您对“使用 Spring 的数据库信息的附加程序”的要求有点奇怪。日志记录在 Spring 启动期间已经可用,如果启动期间的日志需要通过该附加程序,它将无法工作,因为您的附加程序尚未正确配置。我建议您单独配置您的 appender(尽管实现您的目标并非不可能)

对于您的其他问题:

If I were to create a custom logger like "SpecialExceptionLogger", can I just add the DB Appender to that specific logger and then use that logger when I get the special exceptions?

当然可以。它应该是使用 Logback 的基础知识。请务必先阅读文档以了解基础知识。

XML 看起来像(不是真实的,只是给你一个想法)

<appender name="dbAppender" ...> ... </appender>
<logger name="SpecialExceptionLogger">
    <appender-ref ref="dbAppender"/>
</logger>

How can I set this appender/logger up so I can only log certain exceptions to my custom tables

我相信 Logback 中的过滤器可以实现你所需要的。您可以在 existing answer 中找到它在 StackOverflow 中

关于java - Spring、SLF4J 和 Logback - 自定义数据库附加程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33746984/

相关文章:

java - 为什么新的 JSP 抛出 JasperException : Unable to compile class for JSP

logging - 使用 awslogs 驱动程序时无法在 docker 主机上查看容器日志

java - 登录 AppEngine

java - 另一个 "Access denied for user"错误..但我可以从命令行直接登录到远程服务器

java - 使用 java 8 运行 java 1.2 (SSFnet) 开发的程序

java - XML 配置中的 spring log4j 无法创建日志信息文件

java - 背景 : url(images/2. png)在 style.css 中不起作用

java - SpringBoot注入(inject): OK with app,但没有经过测试

.net - .NET New Relic Agent 是否可以配置为记录我的应用程序的日志消息并捕获异常?

java - Android:如何暂停和恢复倒数计时器?