gpt4 book ai didi

log4j - 如何通过log4j控制每日滚动和最大文件大小的日志文件?

转载 作者:行者123 更新时间:2023-12-04 02:00:23 24 4
gpt4 key购买 nike

我想创建可以在第二天开始时滚动的日志文件,或者如果达到指定的文件大小并且日志文件必须包含在日期文件夹中。
文件夹格式为 YYYYMMDD ( /20111103/mylogfile.log )

Log4j 是否可以在不实现自定义类的情况下执行此操作?

现在我正在使用 log4j 和 log4j-extra,
我将 log4j API 中定义的 FileNamePattern 属性设置为每天滚动我的文件
并将最大文件大小设置为 50 MB。

我的 log4j.xml是:

<appender name="MYAPPENDER" class="org.apache.log4j.rolling.RollingFileAppender">
<param name="encoding" value="UTF-8" />
<param name="append" value="true" />
<rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
<param name="FileNamePattern" value="${catalina.home}/logs/MY-APP/%d{yyyyMMdd}/MY-APP_%d{yyyyMMddHHmmss}.log" />
</rollingPolicy>
<triggeringPolicy class="org.apache.log4j.rolling.SizeBasedTriggeringPolicy">
<param name="maxFileSize" value="50000000" />
</triggeringPolicy>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%d{dd/MM/yyyy HH\:mm\:ss}] %-5p [%c.%M(),%4L] - %m%n" />
</layout>
</appender>

上述设置的结果是在第二天开始时不滚动日志文件,但如果文件大小达到 50 MB,将滚动日志文件。

请帮助给我建议。毫米

最佳答案

日常工作对我来说有问题的 xml 仅转换为 log4j.properties 相当于在 100KB 后翻转(用于测试目的):

# Root logger option
log4j.rootLogger=INFO, file

# Direct log messages to a file
log4j.appender.file=org.apache.log4j.rolling.RollingFileAppender
log4j.appender.file.RollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
log4j.appender.file.RollingPolicy.FileNamePattern=/path/to/logs/%d{yyyyMMdd}/myLog_%d{yyyyMMddHH}.log
log4j.appender.file.TriggeringPolicy=org.apache.log4j.rolling.SizeBasedTriggeringPolicy
log4j.appender.file.TriggeringPolicy.maxFileSize=100000
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
log4j.appender.file.Append=true

这将创建一个带时间戳的目录(每天一个目录 - 可选),其中包含以下格式的日志(每小时一个用于测试目的 - 更改 FileNamePattern 以满足您的需要):

myCompanyLog_20160203 10 30.日志

myCompanyLog_20160203 11 30.日志

关于log4j - 如何通过log4j控制每日滚动和最大文件大小的日志文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7994015/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com