java - 根据 log4j2 中的每小时在新目录中生成日志?
问题描述
我想创建一个目录 {date}.dir,在这个目录中,我需要在一个新的单独文件中记录每小时的日志,如 0000.log、0100.log ...2300.log。
我使用了滚动文件附加程序,但它只能创建一个日志文件并压缩最后一个。我正在使用间隔 = 1 的基于时间的触发策略,它每天都会给我一个新文件并压缩最后一天的文件。
<RollingFile name="eventLogger" fileName="/Log/webservices/linpub.log" filePattern="/Log/webservices/linpub-%d{MM-dd-yyyy}.log.gz">
<PatternLayout>
<Pattern>%d{MM/dd/yy HH:mm:ss.SSS} %-5p [%t] %c{1} %X{trioOperation} - %m %throwable %n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
</Policies>
</RollingFile>
我想创建一个名为 linpub-{date}.dir 的新文件,在文件内部,每小时应该有一个日志文件。
我正在使用 log4j2 2.3 版本。
解决方案
请使用以下配置:
<appender name="dailyFileAppender"
class="org.apache.log4j.rolling.RollingFileAppender">
<param name="append" value="true" />
<param name="Threshold" value="INFO" />
<rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
<param name="FileNamePattern" value="/temp/logs/Project-Name_%d{yyyy-MM-
dd-HH}.log" />
</rollingPolicy>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p
%-10t [%-40.40c] %x - %m%n" />
</layout>
</appender>
推荐阅读
- xml - 如何修复 cobertura-coverage.xml 中的格式
- react-native - 如何将用户推送到 Instagram 分享页面?
- java - Spring Boot SSL IllegalArgumentException:DerInputStream.getLength():lengthTag=109,太大
- c# - Azure Durable Functions 无法将 HttpRequestMessage 作为 OrchestrationClient.StartNewAsync 的输入传递
- excel - 使用 Selection.FormatConditions.Add 时 – 如何提供给 Formula1 的文件名,以便 Excel 不会崩溃?
- python - 如何通过 xpath 访问元素?
- contour - “棋盘”中正方形的对象边界检测
- mysql - MySQL 触发器在新的价目表变为活动状态后将产品价格状态更改为非活动状态
- reactjs - 如何修复 Firebase 9.0 无效的 API 密钥
- c# - 从 CollectionView 中删除/移除项目