当前位置: 首页 > 知识库问答 >
问题:

log4j2中的半天翻转

濮阳旭东
2023-03-14

log4j2的半天滚动不适用于给定的属性文件。

status = error
name = Proper

property.filepath = C\:/xi/doc/home/new/log
property.filename1 = ${filepath}/Common.log

filter.threshold.type = ThresholdFilter
filter.threshold.level = debug

appender.console.type = Console
appender.console.name = STDOUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d{yyyy-MM-dd HH:mm:ss} %5p [%C].%M %m %n

appender.rolling1.type = RollingFile
appender.rolling1.name = RollingFile1
appender.rolling1.fileName = ${filename1}
appender.rolling1.filePattern = ${filepath}/Common.%d{yyyy-MM-dd-a}.%i.log.gz
appender.rolling1.layout.type = PatternLayout
appender.rolling1.layout.pattern = %d{yyyy-MM-dd HH:mm:ss} %5p [%C].%M %m %n
appender.rolling1.policies.type = Policies
appender.rolling1.policies.time.type = TimeBasedTriggeringPolicy
appender.rolling1.policies.time.interval = 1
appender.rolling1.policies.time.modulate = true
appender.rolling1.policies.size.type = SizeBasedTriggeringPolicy
appender.rolling1.policies.size.size = 100MB
appender.rolling1.strategy.type = DefaultRolloverStrategy
appender.rolling1.strategy.max = 20
appender.rolling1.strategy.delete.type = Delete
appender.rolling1.strategy.delete.basePath = ${basePath}
appender.rolling1.strategy.delete.maxDepth = 10
appender.rolling1.strategy.delete.ifLastModified.type = IfLastModified

# Delete all files older than 1 day
appender.rolling1.strategy.delete.ifLastModified.age = 1d

# loggers
logger.name = common
logger.level = debug
logger.additivity = false
logger.appenderRefs = rolling1
logger.appenderRefs.level = debug
logger.appenderRef.rolling1.ref = RollingFile1

如果给定时间间隔,并且文件夹以${filepath}/Public.%d{yyyy-MM-dd-HH}${filepath}/Public.%d{yyyy-MM-HH-min}的形式给出,则翻转将每小时和每分钟工作一次

如何半天翻转?log4j2支持吗?

共有1个答案

公良向阳
2023-03-14

Log4j 1。x用于在每条消息中检查文件模式是否解析为不同的文件名,如果解析为不同的文件名,则进行旋转。

然而,Log4j 2。x使用另一种方法。日期模式有两种用途:

  • 日期模式%d{yyyy-MM-dd-a}用于确定滚动频率(参见源代码),在本例中为天。这将决定下一次滚动的时间

如果你想每天轮换两次,你真的需要在模式中添加一个小时说明符:例如,%d{yyyy-MM-dd-Ka}

 类似资料:
  • 我想通过log4j2配置生成半天日志文件。我已经给出: 还定义了: 但我只得到AM日志在这种方式,虽然我希望它是什么: 有人能帮我吗?

  • 有人能帮我在log4j2.properties中设置rolloverstrategy吗?我已经把它设置成- 我写这篇文章时参考了https://logging.apache.org/log4j/2.x/manual/configuration.html#configurationsyntax 我没有找到任何关于实施翻转策略的东西,你上面看到的是我认为可行的。但不幸的是,显然它不可行。 以下是错误:

  • 我最近一直在使用log4j2,遇到了一个问题。发生翻转时,活动日志文件保留其日志。是否可以清除日志文件,以便滚动的文件将只保留日志在名称中指定的时间段?

  • 我正在使用RollingFile appender。我希望日志文件每隔20分钟滚动一次,而不考虑日志事件。例如,在一个小时内,我应该有3个日志文件,即使在该小时内可能没有任何日志记录。使用log4j2是否可能做到这一点?如果是,请提供所需的配置(log4j2.xml)。以下配置似乎不起作用:

  • 我想通过以下方式更改ElasticSearch的log4j2配置。ElasticSearch中的日志应保存在以下目录中:但基于时间的触发策略仅在一天结束后进行滚动。我一直在尝试使用TimeBasedRollingPolicy,但无法通过*进行配置。属性文件。我重写了整个log4j2。属性设置为log4j2。xml文件,但ElasticSearch需要log4j2。财产。最后,我决定放弃将lette

  • 以下是发生这种情况的日志: 如果我在文件名中添加参数,那么我的新文件将不会被删除,但是翻转过程仍然会在初始的翻转过程完成后每秒触发一次,并且我会为发送到记录器的每个日志事件生成一个新文件。 编辑:我只是使用XML配置文件而不是上面的编程方法进行了尝试,得到了类似的结果。下面是我使用的配置文件: > 第一个是在初始事件之后每秒翻转一次,每个日志事件都有一个新文件 第二个是我上面描述的,在我的翻转文件