首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用MDC的JOOQ日志

使用MDC的JOOQ日志
EN

Stack Overflow用户
提问于 2020-08-26 14:51:04
回答 2查看 52关注 0票数 1

我使用logback MDC记录我的应用程序不同模块的日志,例如,

代码语言:javascript
复制
// 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配置

代码语言:javascript
复制
<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是否支持这一点?

EN

回答 2

Stack Overflow用户

发布于 2020-08-29 10:21:25

我找到了一个方法来回答我的问题。

我把我的附加器放进了org.jooq.tools.LoggerListener

代码语言:javascript
复制
    <Logger name="org.jooq.tools.LoggerListener" level="DEBUG">
        <appender-ref ref="log_classify" />
    </Logger>

初始化MDC后,jooq sql执行日志将被添加到不同的文件中。

实际上,我不知道这是不是个好主意

票数 1
EN

Stack Overflow用户

发布于 2020-08-27 14:57:11

jOOQ没有与记录器进行开箱即用的深度集成,但是您可以在运行SQL查询之前将org.slf4j.MDC.put调用放在ExecuteListener中,例如,在ExecuteListener::renderEnd事件中,一旦生成了SQL语句,然后对查询进行正则匹配以做出决策。或者,使用VisitListener,您可以更早地做出这个决定,尝试匹配查询中可能存在的特定表。

但是,初始化MDC上下文的更好位置很可能是在服务层,因为您的服务可能也知道您将运行“交易”或“商品”查询。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63592039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档