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

多日志文件创建的log4j滚动附加器问题

周楷
2023-03-14

我在打印日志的应用程序中使用log4j。到目前为止,我只有一个日志文件(例如X. log),并且它在固定大小后滚动,例如4 MB。现在,我正在尝试将一些特定的请求和响应记录到不同的日志文件Y. Log。

我的要求是在4 MB之后也滚动Y.log文件。我正在为X和Y日志使用滚动文件追加器。Y、 日志将在X.log可用的同一位置创建。

但现在似乎两个日志文件在4 MB后都没有滚动。它继续附加到相同的日志中,并且大小正在增加。下面是我的log4j配置。

<appender name="Xlogfile" class="org.apache.log4j.RollingFileAppender">
    <param name="append" value="true" />
    <param name="file" value="/logs/X.log" />
    <param name="MaxBackupIndex" value="200" />
    <param name="MaxFileSize" value="4MB" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{dd MMM yyyy HH:mm:ss} %5p %c{1} - %m%n"/>
    </layout>
</appender>

<appender name="Ylogfile" class="org.apache.log4j.RollingFileAppender">
    <param name="append" value="true" />
    <param name="file" value="/logs/Y.log" />
    <param name="MaxBackupIndex" value="200" />
    <param name="MaxFileSize" value="4MB" />
    <layout class="org.apache.log4j.PatternLayout">
          <param name="ConversionPattern" value="%d{dd MMM yyyy HH:mm:ss} %5p %c{1} - %m%n"/>
    </layout>
</appender>

<root>
    <level value="INFO"  />
    <appender-ref ref=" Xlogfile " />
    <appender-ref ref=" Ylogfile " />
</root>

谁能为我提供一个解决方案。提前谢谢。

共有1个答案

夏锐藻
2023-03-14

尝试向您的appender添加策略,如下所示:

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

  • 我使用log4j进行日志记录,并且使用.log格式的所有日志文件,其结构简单,如; log4j.rootcategory=info,C,R log4j.appender.c=org.apache.log4j.consoleappender log4j.appender.c.layout=org.apache.log4j.patternlayout log4j.appender.r.layout=o

  • 我好像拿不到滚动日志文件。 我的logback.xml配置有以下内容: 有意思。SIFT中“unknown.log”文件中的条目在分钟的停止处停止。之后,不会向SIFT文件写入任何内容,但我一直在catalina.out中获取条目:

  • 问题内容: 我正在尝试配置log4j以将消息记录到文件中。现在,确实使用我提供的名称创建了该文件,但是日志未写入该文件。我的代码: 我文件的内容: 运行此命令时,将在控制台中获得以下输出: 该文件确实在我的主目录中创建。但是它是空的。 有什么想法我做错了吗?我正在使用log4j 1.2.17版。 问题答案: 输出似乎是Java标准日志记录框架(JUL)发出的默认格式。 因此,有两种可能性(想到):

  • 问题内容: 我当前正在创建一个可以包含模块的系统(将它们视为插件),其中每个模块可以拥有自己的专用日志。 我想使用log4j2项目进行日志记录,但是文件附加器似乎有些麻烦。 主项目(整个模块的模块加载器和“核心”)应具有自己的日志文件,而模块应具有自己的日志文件(如)。 通过阅读有关追加程序的文档,我发现了该类,并且我将使用它。直到我发现不能简单地将追加器添加到由创建的默认记录器中。 LogMan

  • 我想创建单独的日志文件,一个用于信息,另一个用于调试,我正在使用下面的log4j.property文件,请建议如何修改不同文件中的两级日志记录, 我想请求请发送我更新的属性文件而不是给我搜索或探索的指针,因为我已经花了3-4个小时在Google和StackOverflow上搜索这个解决方案, 提前道谢。