Java 使用Logback-test.xml向日志文件添加时间戳
目前,我的Spring boot应用程序将日志记录到一个名为:Java 使用Logback-test.xml向日志文件添加时间戳,java,xml,logging,timestamp,logback,Java,Xml,Logging,Timestamp,Logback,目前,我的Spring boot应用程序将日志记录到一个名为:myLog.log的文件中,该文件按预期工作,但是我希望日志文件的末尾有一个时间戳,并在每次运行时创建一个新文件 我试图在下面显示的logback test.xml文件中实现这一点,但它只是给了我文件名:myLog.log,没有时间戳 我怎样才能解决这个问题 logbacktest.xml: <?xml version="1.0" encoding="UTF-8"?> <configuration> &
myLog.log
的文件中,该文件按预期工作,但是我希望日志文件的末尾有一个时间戳
,并在每次运行时创建一个新文件
我试图在下面显示的logback test.xml
文件中实现这一点,但它只是给了我文件名:myLog.log,没有时间戳
我怎样才能解决这个问题
logbacktest.xml:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<logger name="org.springframework.web" level="INFO"/>
<!-- Send debug messages to System.out -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- By default, encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} - %msg%n</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>path/to/my/file/mylog.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>%d{yyyy-MM-dd_HH:mm:ss.SSS} - %msg%n</Pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<FileNamePattern>mylog.%i{yyyy-MM-dd_HH:mm:ss.SSS}}.log</FileNamePattern>
<MinIndex>1</MinIndex>
<MaxIndex>10</MaxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>2MB</MaxFileSize>
</triggeringPolicy>
</appender>
<logger name="com.my.package" level="INFO" additivity="false">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</logger>
<!-- By default, the level of the root level is set to DEBUG -->
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration>
%d{HH:mm:ss.SSS}-%msg%n
路径/to/my/file/mylog.log
%d{yyyy-MM-dd_HH:MM:ss.SSS}-%msg%n
mylog.%i{yyyy-MM-dd_HH:MM:ss.SSS}.log
1.
10
2MB
您可以定义如下变量:
<timestamp key="myTimestamp" datePattern="yyyy-MM-dd'_'HH-mm-ss.SSS"/>
或者在一个简单的文件追加器中
:
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>path/to/my/file/mylog-${myTimestamp}.log</file>
<encoder>
<Pattern>%d{yyyy-MM-dd_HH:mm:ss.SSS} - %msg%n</Pattern>
</encoder>
</appender>
path/to/my/file/mylog-${myTimestamp}.log
%d{yyyy-MM-dd_HH:MM:ss.SSS}-%msg%n
谢谢,这很有效,但我必须用{myTimestamp}替换{timestamp}。但是,它确实创建了两个日志文件。我如何解决这个问题?请看我的以下问题:myTimestamp
ofc。修正了
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>path/to/my/file/mylog-${myTimestamp}.log</file>
<encoder>
<Pattern>%d{yyyy-MM-dd_HH:mm:ss.SSS} - %msg%n</Pattern>
</encoder>
</appender>