log4j2配置MDC分線程寫日志


1.MDC是一個高級一些的工具,可以配置分用戶(userid)寫日志,也可以分線程

2.方法和道理都是相似的,在寫入日志之前配置線程名或者用戶id

3.如果將線程名配置為目錄,可以將不同線程的日志輸送到不同的目錄

appender配置:

<Property name="log.basedir">e:/log</Property>
<Property name="log.layout">%d %-5p %t (%c:%L) - %m%n</Property>
<Routing name="thread">
            <Routes pattern="$${ctx:ThreadName}">
                <Route>
                    <RollingFile name="RollingFile-${ctx:ThreadName}" fileName="${log.basedir}/${ctx:ThreadName}.log"
                                 filePattern="${log.basedir}/${ctx:ThreadName}-%d{HH-mm-ss}.log" append="false">
                        <PatternLayout pattern="${log.layout}"/>
                        <Policies>
                            <SizeBasedTriggeringPolicy size="100M"/>
                        </Policies>
                        <DefaultRolloverStrategy max="100"/>
                        <Filters>
        <!--此處可添加過濾,被我刪掉了,可以根據等級過濾-->
                        </Filters>
                    </RollingFile>
                </Route>
                <Route ref="STDOUT" key="${ctx:ThreadName}"/> 
            </Routes>
        </Routing>

寫入日志的時候,前后添加設置和移除ctx:ThreadName:

ThreadContext.put("ThreadName", "name");
ThreadContext.remove("ThreadName");

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM