log4j在未设置threadid时如何拥有正确的文件名

qncylg1j  于 2021-08-25  发布在  Java
关注(0)|答案(0)|浏览(175)

我有一个应用程序,它使用log4j根据threadid记录文件。最近,我们向该应用程序添加了一个kafka组件,kafka似乎没有设置自己的线程,这导致在我的末尾有一个文件名

last_${ctx:threadId}.log

在此文件中打印的日志示例(显示它们不是源于我的代码):

me@host:~/var/log> cat last_\$\{ctx\:threadId\}.log 
2021-07-06 09:59:18 INFO  org.apache.kafka.common.security.kerberos.KerberosLogin - [Principal=myPrincipal]: TGT refresh thread started.
2021-07-06 09:59:18 INFO  org.apache.kafka.common.security.kerberos.KerberosLogin - [Principal=myPrincipal]: TGT valid starting at: Tue Jul 06 09:59:18 CDT 2021
2021-07-06 09:59:18 INFO  org.apache.kafka.common.security.kerberos.KerberosLogin - [Principal=myPrincipal]: TGT expires: Tue Jul 06 19:59:18 CDT 2021
2021-07-06 09:59:18 INFO  org.apache.kafka.common.security.kerberos.KerberosLogin - [Principal=myPrincipal]: TGT refresh sleeping until: Tue Jul 06 18:24:11 CDT 2021
2021-07-06 09:59:18 INFO  org.apache.kafka.clients.Metadata - [Producer clientId=producer-2] Cluster ID: A6cx81oGSpSF7T_UUb6yWA
2021-07-06 09:59:18 INFO  org.apache.kafka.clients.Metadata - [Producer clientId=producer-1] Cluster ID: A6cx81oGSpSF7T_UUb6yWA
2021-07-06 09:59:18 INFO  org.apache.kafka.clients.Metadata - [Producer clientId=producer-3] Cluster ID: A6cx81oGSpSF7T_UUb6yWA
2021-07-06 09:59:18 INFO  org.apache.kafka.clients.Metadata - [Producer clientId=producer-4] Cluster ID: A6cx81oGSpSF7T_UUb6yWA
2021-07-06 09:59:19 INFO  org.apache.kafka.clients.Metadata - [Producer clientId=producer-5] Cluster ID: A6cx81oGSpSF7T_UUb6yWA
2021-07-06 09:59:19 INFO  org.apache.kafka.clients.Metadata - [Producer clientId=producer-6] Cluster ID: A6cx81oGSpSF7T_UUb6yWA
me@host:~/var/log>

就文件名而言,我的log4j属性如下所示:

<appenders>
        <Routing name="Routing">
            <Routes pattern="$${ctx:threadId}">
                <Route>
                    <RollingFile name="RollingFile-${ctx:threadId}" fileName="${logDir}/last_${ctx:threadId}.log" filePattern="${logDir}/%d{yyyyMMdd_HHmmss}_${ctx:threadId}.log">
                        <PatternLayout pattern="${logMsgPattern}"/>
                            <Policies>
                                <OnStartupTriggeringPolicy />
                                <CronTriggeringPolicy schedule="0 0 0 * * ?" />
                            </Policies>
                    </RollingFile>
                </Route>
            </Routes>
        </Routing>
    </appenders>

我应该如何更改属性以获得更好的默认文件名,使其不显示变量名?
谢谢

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题