我使用logback MDC来记录我的应用程序不同模块的日志,例如,
// 1. define a logger
org.slf4j.Logger mdclog = org.slf4j.LoggerFactory.getLogger("MY_LOGGER_NAME");
// record trade log
org.slf4j.MDC.put("MY_MDC_KEY", "trade_log");
mdclog.info("This is trade log");
// record goods log
org.slf4j.MDC.put("MY_MDC_KEY", "goods_log");
mdclog.info("This is goods log");
logback.xml中的mdc配置
<appender name="log_classify" class="ch.qos.logback.classic.sift.SiftingAppender">
<discriminator>
<Key>login</Key>
<DefaultValue>OTHER</DefaultValue>
</discriminator>
<sift>
<appender name="${MY_MDC_KEY}" class="ch.qos.logback.core.rolling.RollingFileAppender">
<prudent>false</prudent>
<file>${LOG_PATH}/${MY_MDC_KEY}.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/${MY_MDC_KEY}_%d{yyyy-MM-dd}.log.zip</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
</encoder>
</appender>
</sift>
</appender>
我想在不同的日志文件中记录贸易或货物sql日志,所以我想知道JOOQ是否支持这个?
jOOQ并没有将其与现成的记录器深度集成,但您可以将您的org.slf4j.MDC放在一起。在运行SQL查询之前,例如在生成SQL语句后的事件中,将调用放入一个ExecuteListener,正则表达式与查询匹配以做出决策。或者,使用VisitListener,您可以更早地做出这个决定,尝试匹配查询中可能存在的特定表。
但很可能,初始化
MDC
上下文的更好位置是在服务层,因为您的服务可能还会知道您是要运行“交易”还是“商品”查询。
我想办法解决我的问题。
我将appender放入org.jooq.tools.LoggerListener中,
<Logger name="org.jooq.tools.LoggerListener" level="DEBUG">
<appender-ref ref="log_classify" />
</Logger>
初始化MDC后,jooq sql执行日志将添加到不同的文件中。
事实上,我不知道这是不是个好主意
问题内容: 是否有可能在运行时使用MDC命名日志文件。 我有一个单独的Web应用程序,该应用程序同时使用tomcat docbase被不同的名称调用。因此,我需要为每个文件设置单独的日志文件。 问题答案: 这可以在Logback(Log4J的后继者)中完成。 Logback旨在作为流行的log4j项目的后继者,从log4j离开的地方接手。 请参阅文档筛选器 SiftingAppender在引用和配
我想知道如何在Spring批处理中使用MCD记录诸如和之类的内容。 下面是一些代码: Bootstrap.properties 这个文件有我的主要方法。当我用手动设置这里的字段时,我在日志中看到了它,但我不明白如何将我需要的实际信息放在这里。 如果有任何见解,我将不胜感激:)谢谢。
我是ORM的忠实粉丝,特别是当涉及到。NET和实体框架时,使用LINQ使您的数据访问不那么乏味,更令人愉快。 然而,我目前正在研究Java,尤其是ORMS。我在SQL Server数据库中尝试了nHybernate--由于某些表中没有键(唯一约束),我开始查看Jooq。 不过,我已经设法使用JOOQ(V3.2.0)从SQL Server数据库生成了Java类--并非没有错误。 对于未找到类的异常,
问题内容: 跟进如何在线程池中使用MDC?如何将MDC与?具体来说,我如何在执行任务之前包装一个MDC值? 问题答案: 以下内容似乎对我有用: 和 针对您的任务而不是普通的ForkJoinPool 运行任务。 代替扩展。
问题内容: 现在,我正在使用如下结构:Appender: 记录器: 但是它不适用于MDC密钥。如何在xml中使用MDC密钥配置RollingFileAppender? 问题答案: 看一下RoutingAppender。也许这可以帮助您入门:
我有一个基于Spring boot sleuth的应用程序。一切正常。我现在有这样的日志: 现在,我想将自定义MDC添加到我的日志中,例如合同引用。我想要这样的日志: 我尝试了各种方法,但都没有成功: 使用Spring Sleuth Tracer添加标签; 使用MDC. put(xxx, xxx)将logging.pattern.level=%5p%mdc添加到我的application.prop