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

Log4j2-添加存档到当前配置

廖弘量
2023-03-14

我想将自动存档(删除)添加到日志文件中,但我很难找到一个我理解并可以添加到当前配置中的xml示例

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="DEBUG">
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{DEFAULT} - %msg%n"/>
    </Console>
    <RollingFile name="RollingFile" fileName="./logs/AutoLab.log" 
   filePattern="./logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
      <PatternLayout pattern="%d{DEFAULT} - %msg%n"/>
      <Policies>
        <TimeBasedTriggeringPolicy/>
        <SizeBasedTriggeringPolicy size="100 MB"/>
      </Policies>
       <DefaultRolloverStrategy max="50"/>
</RollingFile>
  </Appenders>
  <Loggers>
    <Root level="DEBUG">
      <AppenderRef ref="Console"/>
      <AppenderRef ref="RollingFile"/>
    </Root>
  </Loggers>
</Configuration>

上面是我当前的配置。从我所读到的,我必须小心路径和目录名,这样我才能为操作系统使用正确的向前或向后斜杠字符。不确定我的安装程序如何处理这个问题。

非常感谢您对自动存档-删除语法的任何帮助。

戴夫

共有2个答案

令狐献
2023-03-14
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="DEBUG">
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{DEFAULT} - %msg%n"/>
    </Console>
    <RollingFile name="RollingFile" fileName="./logs/AutoLab.log" filePattern="./logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
      <PatternLayout pattern="%d{DEFAULT} - %msg%n"/>
      <CronTriggeringPolicy schedule="0 0 0 * * ?"/>
      <DefaultRolloverStrategy>
        <Delete basePath="${baseDir}" maxDepth="2">
          <IfFileName glob="*/app-*.log.gz" />
          <IfLastModified age="14d" />
        </Delete>
      </DefaultRolloverStrategy>
      <Policies>
        <TimeBasedTriggeringPolicy/>
        <SizeBasedTriggeringPolicy size="50 MB"/>
      </Policies>
       <DefaultRolloverStrategy max="10"/>
    </RollingFile>
  </Appenders>
  <Loggers>
    <Root level="DEBUG">
      <AppenderRef ref="Console"/>
      <AppenderRef ref="RollingFile"/>
    </Root>
  </Loggers>
</Configuration>

添加了“添加”部分以删除超过14天的文件。

郎宏浚
2023-03-14

您当前的配置表示希望文件每月滚动一次,或者在文件大小为100MB时滚动。你希望每月最多保存50个文件。

有关示例,请参见如何使用log4j2删除旧日志

 类似资料:
  • 我在 我想在不重新定义的情况下向当前url添加一个参数: 用类似的东西: 但是上面的代码返回

  • 最近,我决定学习如何使用log4j2记录器。我下载了所需的jar文件,创建了库,xml编译文件,并尝试使用它。不幸的是,我在console(Eclipse)中得到了这样的语句: 这是我的测试类代码: 和我的xml配置文件: 我还尝试使用不带标记的xml,以及包规范和各种文件夹/包目录,但没有帮助。现在我的文件直接位于Eclipse的project文件夹中。

  • 你能帮我找出配置中缺少的步骤吗? 我正试图将logger添加到我非常简单的web应用程序中:为了做到这一点,我使用了log4j2 (beta9)。 我写下了我的<code>log4j2.xml<code>如下 我把它放在WEB-INF文件夹里。 然后,我有一个简单的servlet,它执行以下操作 正如你所看到的,这只是一个尝试,看看是否如预期的那样工作,但它没有。通过阅读此处的web app,我不

  • 但我自己创建配置时却找不到方法。例如,我有consoleAppenderBuilder和RootLoggerBuilder: 如何将控制台附加器添加到根记录器中,并为附加器定义日志级别。我问这个是因为我想添加多个附加到根记录器。

  • 这是我的代码: 每次执行程序时,我都会创建一个新文档,我只想在不存在的情况下创建它,如果文档存在,只需添加内容即可。

  • 问题内容: 在我当前的项目中,我尝试将一个添加到PDFBox文档中。更具体地说,我使用来自的图片。我的代码如下所示: 文档被创建;我可以添加文本,但是出现错误,指出图像没有足够的信息可显示。 任何有关我做错事情的线索? 问题答案: 感谢您帮助我解决垃圾问题。昨晚和今天花了几个小时,人们对PipedIn / OutStreams感到困惑。无法解决。但是,我得到它的工作。事实证明,这并不是很困难。 我