我在webapp中使用以下log4j RollingFile appender。
<Appenders>
<RollingFile name="logFile"
fileName="${env:SYSTEM_LOGS}/${env:LOG_FILE_NAME}.log" immediateFlush="true"
filePattern="${env:SYSTEM_LOGS}/${env:LOG_FILE_NAME}.log.%d{yyyy_MM_dd.HH_mm_ss}.%i">
<PatternLayout pattern="%d{yyyyMMdd-HHmmss.SSS}|%X{username}|%-5p|%t| %-100m (%c{1})%n"/>
<Policies>
<OnStartupTriggeringPolicy/>
</Policies>
</RollingFile>
</Appenders>
使用filePattern=“${env:system_logs}/${env:log_file_name}.log.%d{yyyy_mm_dd.hh_mm_ss}.%i”
时,当日志滚动时,旧文件将重命名为具有索引号的文件名(使用%i指定),因此所有旧文件都应重命名并保留。
我通过以下代码以编程方式滚动日志。
org.apache.logging.log4j.Logger logManagerLogger = LogManager.getLogger();
Map<String, org.apache.logging.log4j.core.Appender> appenders = ((org.apache.logging.log4j.core.Logger) logManagerLogger).getAppenders();
appenders.forEach((appenderName, appender) -> {
if (appender instanceof RollingFileAppender) {
LOGGER.info("Switching log for appender " + appenderName);
((RollingFileAppender) appender).getManager().rollover();
}
});
但是,在7次滚动之后,现有文件将被删除(未根据指定的filePattern
重命名),并在新文件中继续日志。
这里有什么问题?
设置DefaultRolloverStrategy(默认值为7),则在配置中将为:
<Appenders>
<RollingFile name="logFile"
fileName="${env:SYSTEM_LOGS}/${env:LOG_FILE_NAME}.log" immediateFlush="true"
filePattern="${env:SYSTEM_LOGS}/${env:LOG_FILE_NAME}.log.%d{yyyy_MM_dd.HH_mm_ss}.%i">
<PatternLayout pattern="%d{yyyyMMdd-HHmmss.SSS}|%X{username}|%-5p|%t| %-100m (%c{1})%n"/>
<Policies>
<OnStartupTriggeringPolicy/>
</Policies>
<DefaultRolloverStrategy max="100"/>
</RollingFile>
</Appenders>
现在,它将有100个日志文件要翻转。
问题内容: 我知道您可以定义overflow:hidden; 在HTML主体上删除滚动条,但我仍然希望能够使用鼠标上的箭头或滚轮滚动。 在此先感谢您的帮助。 编辑:感谢您对悬停滚动条和自定义栏上的所有建议。另外,感谢您担心通过删除滚动条来影响用户体验。我会详细说明,以便您解释我的来历。 我有一个圆形页面(如果您使用滚轮或箭头按钮滚动,当到达底部时,它将重置为页面顶部并重新开始)。永无止境的循环。滚
我知道你可以定义溢出:隐藏;在HTML的正文中删除滚动条,但我希望仍然能够用鼠标上的箭头或滚轮滚动。 提前感谢您的帮助。 编辑:感谢您有关悬停滚动条和自定义栏的所有建议。还要感谢您对通过删除滚动条影响用户体验的所有疑虑。我将更详细地阐述一下,以便您解释我来自哪里。 我有一个圆形页面(如果你用滚轮或箭头按钮滚动,当它到达底部时,它会重置到页面顶部并重新开始)。一个永无止境的循环。滚动条会影响这个,因
问题内容: 我使用以下crontab记录来每天备份数据库: 我想添加另一个crontab记录,该记录将删除早于一个月的数据库转储。 有什么想法吗? 问题答案: 只需创建另一个cron: 它将查找所有早于30天的备份并将其删除。
我阅读了log4j2的官方文档,并得到了一个关于RollingFileAppender的问题。 文件上是这么说的: 下面是一个示例配置,它使用基于时间和大小的触发策略的RollingFileAppender,将在同一天(1-100)创建多达100个存档,这些存档存储在基于当前年份和月份的目录中,并将压缩每个存档使用gzip并将每小时滚动一次。在每次翻转期间,此配置将删除与"/app.log.gz"
我正在寻找一个简单的批处理脚本,它将允许我删除旧文件并记录它是否删除了旧文件。搜索完网站后,我发现“forfiles”非常有用: 来自:批处理文件以删除超过N天的文件 正如我所说,我关心的是记录已删除的内容。我尝试了很多东西,但仍然不起作用。这是我的实际代码: 日志文件已创建,但为空,旧文件不会被删除。(它应该删除我2016年的8个文件)当我使用原始代码时,它会删除文件。我可能读过关于逃离 目标是
问题内容: 我发现自己想在许多应用程序中滚动删除早于(x)天的行。在交通繁忙的桌子上最有效地做到这一点的最佳方法是什么? 例如,如果我有一个存储通知的表,而我只想将其保留7天。还是我只想保留31天的高分。 现在,我继续存储存储的纪元时间,并运行一个cron作业,该作业每小时运行一次,并按如下所示增量删除它们: 我这样做直到mysql_affected_rows返回0。 我曾经一次完成所有操作,但是