我有麻烦配置"DefaultRolloverStrategy"log4j2.xml做以下工作:-
确保只保留最后4个日志文件,并删除旧的日志文件。所以请明确,最后4个日志文件可能在数天内或同一天,因此,最后4个日志文件可能具有相同的日期或跨越不同的日期。
下面是log4j2的内容。xml
<?xml version="1.0" encoding="UTF-8" ?>
<Configuration>
<Appenders>
<!-- Console Appender -->
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{DEFAULT} [%t] %-5level %logger{36} - %msg%n" />
</Console>
<!-- Rolling File Appender -->
<RollingFile name="File" fileName="app_log.log"
filePattern="app_log-%d{yyyy-MM-dd}.%i.log">
<PatternLayout pattern="%d{DEFAULT} [%t] %-5level %logger{36} - %msg%n" />
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="2 KB" />
</Policies>
<DefaultRolloverStrategy>
<Delete basePath="" maxDepth="1">
<IfFileName glob="app_log*.txt">
<IfAny>
<IfAccumulatedFileSize exceeds="5 KB" />
<IfAccumulatedFileCount exceeds="4" />
</IfAny>
</IfFileName>
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="com.app.utilities" level="info" additivity="true">
<AppenderRef ref="File" />
</Logger>
<Root level="debug">
<AppenderRef ref="Console" />
</Root>
</Loggers>
</Configuration>
我运行我的应用程序如下所示
java -Dlog4j.configurationFile=./app-log4j2.xml -jar application.jar
日志是在调用上述命令的同一目录中生成的。
下面是日志文件的历史记录示例:-
File Name Date Modified
app_log.log 8/27/2018 2:25 PM
app_log-2018-08-27.2.log 8/27/2018 2:25 PM
app_log-2018-08-27.1.log 8/27/2018 2:11 PM
app_log-2018-08-26.5.log 8/26/2018 2:01 PM
app_log-2018-08-26.4.log 8/26/2018 2:00 PM
app_log-2018-08-26.3.log 8/26/2018 1:58 PM
app_log-2018-08-26.2.log 8/26/2018 1:57 PM
app_log-2018-08-26.1.log 8/26/2018 1:56 PM
“DefaultRollowVersegy”似乎没有效果。
我认为我的配置是错误的。然而,我非常感谢您的建议,请纠正这一点。
此外,如果要求更改,则应删除超过20天的日志文件。这怎么可能实现呢。
非常感谢您的帮助
皮特
请看下面一行:
<IfFileName glob="app_log*.txt">
但是您的日志文件不会以. txt
结尾!请参阅:
File Name Date Modified
app_log.log 8/27/2018 2:25 PM
您可能需要将其更改为:
<IfFileName glob="app_log*.log">
这才是我真正想到的。你可能还需要做一些调整,但先试试。
我正在迁移log4j1.2。8至log4j 2.3。一切正常,除此之外,我没有为PropertyConfiguration找到任何替代品。 是否有其他类来处理PropertyConfiguration之前所做的工作?
我正在使用log4j的现有系统上工作,我想更新到log4j2。 有一个自定义Springbean从文件加载配置。我需要保持这种方法。我不能使用"log4j.configuration文件"系统属性。 我们有一个属性文件,其中指定了当前log4j.xml的路径(NFS共享) Springbean有以下代码。。。 } 在log4j2中,没有PropertyConfiguration。如何加载log4j
根据http://logging.apache.org/log4j/2.x/manual/configuration.html的Log4J2手册,使用 并记录语句,如 然而,我得到了两次信息,即。 “简单信息消息” “简单信息消息”
我试图根据文档(以及相关的SO问题)设置LOG4J,但它不会创建假定的文件,但WildFly中有这样的日志: web.xml app.war/WEB-INF/类/log4j2.xml app.war/WEB-INF/lib 你能告诉我怎么了吗?我尝试在web.xml中注释掉上下文参数,并依赖自动配置,但是没有变化。 编辑 当我添加以下代码时 失败的方式不同(我现在没有时间调查)
log4j2的半天滚动不适用于给定的属性文件。 如果给定时间间隔,并且文件夹以和的形式给出,则翻转将每小时和每分钟工作一次 如何半天翻转?log4j2支持吗?
但是房产没有被选中。例如,下面的代码创建一个${log-path}文件夹来存储日志文件,而不是所需的logs文件夹。 我做错了什么?