Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Log4j2在每次JVM启动时创建具有不同文件名的新文件_Java_Logging_Log4j2_Rollingfileappender - Fatal编程技术网

Java Log4j2在每次JVM启动时创建具有不同文件名的新文件

Java Log4j2在每次JVM启动时创建具有不同文件名的新文件,java,logging,log4j2,rollingfileappender,Java,Logging,Log4j2,Rollingfileappender,每次启动JVM时,我都需要创建一个新的日志文件 <?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN"> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t]

每次启动JVM时,我都需要创建一个新的日志文件

    <?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
        </Console>
        <RollingFile name="roll-by-time" fileName="target/log4j2/roll-by-time/app.log"
            filePattern="target/log4j2/roll-by-time/app.%d{MM-dd-yyyy-HH-mm}.log"
            ignoreExceptions="false"
            append="false">
            <PatternLayout>
                <Pattern>%d{yyyy-MM-dd HH:mm:ss} %p %m%n</Pattern>
            </PatternLayout>
            <Policies>
                <OnStartupTriggeringPolicy />
            </Policies>
        </RollingFile>
    </Appenders>
    <Loggers>
        <Root level="trace">
            <AppenderRef ref="Console" />
            <AppenderRef ref="roll-by-time" />
        </Root>

    </Loggers>
</Configuration>

%d{yyyy-MM-dd HH:MM:ss}%p%m%n
我已经尝试过这个配置,但它所做的只是每次都重写文件,但我需要根据日期和/或时间创建一个具有不同文件名的新配置。 试图在
文件名
参数中插入
%d{MM dd yyyy HH MM}
,但未成功。

从追加器配置中删除
append=“false”
,或将其设置为
true
-

<RollingFile name="roll-by-time" fileName="target/log4j2/roll-by-time/app.log"
            filePattern="target/log4j2/roll-by-time/app.%d{MM-dd-yyyy-HH-mm}.log"
            ignoreExceptions="false"
            append="true">

尝试使用文件名指定${runid}.log。其中runid=$${date:yyyyy-MM-dd-HH-MM-ss}

<Properties>
        <Property name="runid">$${date:YYYY-MM-dd HH-mm-ss}</Property>
    </Properties>
    <Appenders>
         <File name="MyFile" fileName="logs\${runid}.log"   immediateFlush="false" append="true">
            <PatternLayout pattern="%d{dd-MM-yyy HH:mm:ss.SSS} %-5level  - %msg%n"/>
        </File>

$${日期:YYYY MM dd HH MM ss}

谢谢,成功了。在其他地方阅读,对于这种结果,
append
应该为false。