当前位置: 首页 > 面试题库 >

如何在启动时使log4j清除日志?

施飞驰
2023-03-14
问题内容

我希望日志在应用程序运行期间一直滚动,但是我希望在重新启动应用程序时重新启动日志。

更新: 根据erickson的反馈,我的appender如下所示:

   <appender name="myRFA" class="org.apache.log4j.RollingFileAppender">
      <param name="File" value="my-server.log"/>
      <param name="Append" value="false" />
      <param name="MaxFileSize" value="10MB"/>
      <param name="MaxBackupIndex" value="10"/>
      <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern"
            value="%d{ISO8601} %p - %t - %c - %m%n"/>
      </layout>
   </appender>

我只是添加了以下行:

<param name="Append" value="false" />

现在,它会在启动时截断基本日志文件,但不保留滚动文件。


问题答案:

如果将append参数设置为false,则在应用程序重新启动时,基本日志文件将“重新启动”。您是说要删除所有“滚动”日志文件吗?



 类似资料:
  • 我目前正在使用log4j2为我的web应用程序编写日志。我已经配置了一个滚动文件追加器,可以在每晚午夜滚动。 我的log4j2.xml如下: 目前,这会写入名为application.log的日志,然后在午夜将当前的application.log文件复制到application yyy-MM-DD . log(文件名中的日期会被正确替换),并在第二天继续在application.log中记录日志。

  • 我下载了kafka-clients-0.9.0.0。jar与maven一起使用,我希望我会看到类似于Kafka日志链接中的日志记录 然而,我不知道为什么我没有得到任何日志记录,即使我设置了引导。purpuse上的服务器错误,但它只是在没有发出任何警告的情况下被卡住了。我添加了几行代码以使用log4j打印到一个文件中,这似乎是可行的,但不知道为什么Kafka不能将事件记录到log4j中。 请注意,s

  • 问题内容: 我使用以下命令读取了Docker容器日志输出 我通过调用来将大量数据记录到node.js应用程序的日志中。我需要清理日志,因为它太长了,并且该命令首先运行日志的现有行,然后结束。我该如何清洁使其再次变短?我想查看类似的命令: 但是它似乎不存在。 问题答案: 首先,如果只需要查看较少的输出,则可以让docker只向您显示更新的行: 或者,您可以限制一些行: 要删除Docker for L

  • 问题内容: 即时通讯使用log4j写入具有以下属性文件的文件: 我的问题是,在我的程序的每次运行中,我都想清除文件“ temp.ppr”,然后使用lo4j有效地对其进行写入?还是您建议其他解决方案? 谢谢 问题答案: 您可以这样做: 然后在应用程序的启动代码中: 这样,对于程序的每次运行,现有日志都将移至“ temp.ppr.1”,并且“ temp.ppr”将重新开始。这样,您也总是拥有上一次运行

  • 我希望在翻转后,旧日志文件的文件名中有创建日期。当前日志文件名中的日期不等于文件的创建日期。举个例子:如果一个日志文件是昨天创建的,更新到今天,现在已经翻转,那么昨天的日期应该在旧的日志文件名中可见。 启动后的日志切换在代码中如下所示 这类似于onStartupTriggeringPolicy 文件creationTime问题的以下bug(但未修复),适用于RollingFileAppender,