如何在日志文件名中添加uuid。我正在使用log4j2?

时间:2018-03-16 17:05:54

标签: log4j log4j2

我想创建日志文件名,其中包含名称中的uuid。

<Configuration status="DEBUG">
    <Appenders>
        <RollingFile name="file" fileName="log/${uuid:TIME}-test.log"
            append="true" filePattern="log/${uuid:TIME}-test.log.%i">
            <Policies>
                <SizeBasedTriggeringPolicy size="100 KB" />
            </Policies>
            <DefaultRolloverStrategy max="5" />
            <PatternLayout>
                <Pattern>%d %-5p [%c{3}] (%t) %m%n</Pattern>
            </PatternLayout>
        </RollingFile>

        <Async name="async">
            <AppenderRef ref="file" />
        </Async>

        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d %-5p [%c{2}]%m%n" />
        </Console>

    </Appenders>
    <Loggers>
        <Root level="warn">
            <AppenderRef ref="Console" />
            <AppenderRef ref="async" />
        </Root>
        <Logger name="com.citigroup" level="INFO" additivity="false">
            <Appender-ref ref="async" />
        </Logger>
    </Loggers>

</Configuration>

但它正在创建文件“uuid:TIME-test.log”。我也尝试了%uuid,%u但是没有一个用uuid创建文件。

1 个答案:

答案 0 :(得分:1)

这可以通过自定义查找来完成。 This answer给出了如何在Log4j2中创建自定义查找的示例代码(它只有几行代码)。