在Logback中,要每半小时输出一个文件的Appender,可以借助于PeriodicRotatingFileAppender
和配置文件的"timeBasedFileNamingAndTriggeringPolicy"
节点。下面是一个示例的Logback配置文件,展示了如何设置每半小时滚动日志文件:
<configuration>
<!-- 定义根日志级别 -->
<root level="info">
<!-- 控制台输出 -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d %-5level [%thread] %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- 每半小时滚动日志文件 -->
<appender name="HALF_HOUR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/path/to/logs/app.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>/path/to/logs/app_%d{yyyy-MM-dd_HH-mm}.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize> <!-- 设置每个文件的最大大小 -->
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%d %-5level [%thread] %logger{36} - %msg%n</pattern>
</encoder>
</appender>
</root>
<!-- 将Appender关联到相应的Logger -->
<logger name="com.example" level="debug" additivity="false">
<appender-ref ref="HALF_HOUR_FILE" />
</logger>
<root level="info">
<appender-ref ref="CONSOLE" />
</root>
</configuration>
在上述配置中,HALF_HOUR_FILE
Appender使用TimeBasedRollingPolicy
来设置文件名的模式,通过%d{yyyy-MM-dd_HH-mm}
实现每半小时滚动。在这个示例中,每半小时滚动的日志文件命名为类似 app_2022-07-15_10-30.log
的格式。
timeBasedFileNamingAndTriggeringPolicy
节点设置为SizeAndTimeBasedFNATP
,并且可以通过maxFileSize
参数来限制每个文件的最大大小。在这个示例中,每个文件的最大大小设置为100MB。
请注意,您需要将配置文件中的/path/to/logs/
替换为您实际的日志文件路径。
希望这个示例能帮助您设置每半小时输出一个文件的Appender。如有更多问题,请随时提问。