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

log4j.xml基于尺寸的滚动Appender

孔逸春
2023-03-14

请在下面找到我的日志4。滚动文件追加器的xml配置

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>


    <appender name="instrumentationAppender" class="org.apache.log4j.RollingFileAppender">
       <param name="file" value="C:\\Users\\Test\\Downloads\\Testlogs\\instrumentation.log"/>
        <param name="Append" value="true" />
        <param name="Encoding" value="UTF-8" />
        <param name="MaxFileSize" value="100KB"/>
        <param name="MaxBackupIndex" value="10"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d %-5p [%t] (%C:%L) - %m%n"/>
        </layout>
          <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="LevelMin" value="INFO" />
            <param name="LevelMax" value="INFO" />
            <param name="AcceptOnMatch" value="true" />
        </filter>
    </appender>


    <appender name="debugAppender" class="org.apache.log4j.RollingFileAppender">
       <param name="file" value="C:\\Users\\Test\\Downloads\\Testlogs\\Test.log"/>
        <param name="Append" value="true" />
        <param name="Encoding" value="UTF-8" />
        <param name="MaxFileSize" value="100KB"/>
        <param name="MaxBackupIndex" value="10"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d %-5p [%t] (%C:%L) - %m%n"/>
        </layout>
        <param name="ImmediateFlush" value="true" />
          <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="LevelMin" value="DEBUG" />
            <param name="LevelMax" value="DEBUG" />
            <param name="AcceptOnMatch" value="true" />
        </filter>
    </appender>

      <appender name="errorAppender" class="org.apache.log4j.RollingFileAppender">
       <param name="file" value="C:\\Users\\Test\\Downloads\\Testlogs\\Test.log"/>
        <param name="Append" value="true" />
        <param name="Encoding" value="UTF-8" />
        <param name="MaxFileSize" value="100KB"/>
        <param name="MaxBackupIndex" value="10"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d %-5p [%t] (%C:%L) - %m%n"/>
        </layout>
          <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="LevelMin" value="ERROR" />
            <param name="LevelMax" value="FATAL" />
            <param name="AcceptOnMatch" value="true" />
        </filter>
    </appender>

    <category name="com.practice.Test" additivity="false">
        <priority value="DEBUG"/>
        <appender-ref ref="instrumentationAppender" />
        <appender-ref ref="debugAppender" />
        <appender-ref ref="errorAppender" />
    </category>

问题是com引用了instrumentationAppender、debugAppender和errorAppender。实践上述类别中定义的pakaage。在所有Appender中,maxFileSize为100kb,并配置为测试。日志文件。问题测试。日志文件在大小为100kb后不会得到滚动。所有日志只是附加到同一个测试中。日志文件。如何根据大小配置RollingAppender?

提前感谢您的帮助。

共有2个答案

斜博超
2023-03-14
# Set the maximum file size before rollover
log4j.appender.FILE.MaxFileSize=100KB

# Set the the backup index
log4j.appender.FILE.MaxBackupIndex=2

如果您设置了,它将使备份文件保持与您在该属性中提到的一致。

司徒经纶
2023-03-14

在此回答我自己的问题。希望它会有用。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>


  <appender name="instrumentationAppender" class="org.apache.log4j.RollingFileAppender">
       <param name="file" value="C:\\Users\\Test\\Downloads\\Testlogs\\instrumentation.log"/>
        <param name="Append" value="true" />
        <param name="Encoding" value="UTF-8" />
        <param name="MaxFileSize" value="100KB"/>
        <param name="MaxBackupIndex" value="10"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d %-5p [%t] (%C:%L) - %m%n"/>
        </layout>
         <filter class="org.apache.log4j.varia.LevelMatchFilter">
            <param name="LevelToMatch" value="INFO" />
            <param name="AcceptOnMatch" value="true" />
        </filter>
        <filter class="org.apache.log4j.varia.DenyAllFilter" />  
    </appender>


    <appender name="debugAppender" class="org.apache.log4j.RollingFileAppender">
       <param name="file" value="C:\\Users\\Test\\Downloads\\Testlogs\\Test.log"/>
        <param name="Append" value="true" />
        <param name="Encoding" value="UTF-8" />
        <param name="MaxFileSize" value="100KB"/>
        <param name="MaxBackupIndex" value="10"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d %-5p [%t] (%C:%L) - %m%n"/>
        </layout>
        <param name="ImmediateFlush" value="true" />
          <filter class="org.apache.log4j.varia.LevelMatchFilter">
              <param name="LevelToMatch" value="DEBUG" />
             <param name="AcceptOnMatch" value="true" />
        </filter>
        <filter class="org.apache.log4j.varia.LevelMatchFilter">
              <param name="LevelToMatch" value="ERROR" />
             <param name="AcceptOnMatch" value="true" />
        </filter>
         <filter class="org.apache.log4j.varia.LevelMatchFilter">
              <param name="LevelToMatch" value="WARN" />
             <param name="AcceptOnMatch" value="true" />
        </filter>
        <filter class="org.apache.log4j.varia.LevelMatchFilter">
              <param name="LevelToMatch" value="FATAL" />
             <param name="AcceptOnMatch" value="true" />
        </filter>
        <filter class="org.apache.log4j.varia.DenyAllFilter" />     
    </appender>


    <category name="com.practice.Test" additivity="false">
        <priority value="DEBUG"/>
        <appender-ref ref="instrumentationAppender" />
        <appender-ref ref="debugAppender" />
     </category>

    </log4j:configuration>

解决方案不是将不同日志级别的多个附加器映射到同一文件,而是如上所述添加LevelMatchFilter以将不同日志级别匹配到同一文件。

 类似资料:
  • 问题内容: 我正在尝试根据元素的(100%)高度使用宽度大小制作一个响应式正方形。我相信仅使用CSS是不可能的。 正方形宽度应等于高度(大型容器的100%。大型容器大于屏幕的100%)。该比例必须为width = height才能保持正方形。 问题答案: 好的,这里的解决方案。

  • 主要内容:jQuery 尺寸方法,jQuery 尺寸,jQuery width() 和 height() 方法,实例,jQuery innerWidth() 和 innerHeight() 方法,实例,jQuery outerWidth() 和 outerHeight() 方法,实例通过 jQuery,很容易处理元素和浏览器窗口的尺寸。 jQuery 尺寸方法 jQuery 提供多个处理尺寸的重要方法: width() height() innerWidth() innerHeight() ou

  • 早上好,我有问题要解决: 我做了如下,但我有基本情况和返回最小和子向量的问题。 非常感谢。

  • 在CSS中,通过 width 和 height 属性来定义一个盒子的宽度和高度,可以用长度值或百分比来设置,不允许负值。使用百分比时,根据父元素的宽度进行计算盒子的宽度,根据父元素的高度进行计算盒子的高度。 如果一个盒子没有显式定义 width 属性,则宽度的计算结果跟定位类型相关:静态定位或相对定位的盒子,其宽度为父元素宽度的100%;绝对定位和浮动的盒子,其宽度根据所包含内容自动扩展,最大宽度

  • CSS 尺寸 (Dimension) 属性允许你控制元素的高度和宽度。同样,它允许你增加行间距。 更多实例 设置元素的高度 这个例子演示了如何设置不同元素的高度。 使用百分比设置图像的高度 这个例子演示了如何使用百分比值设置元素的高度。 使用像素值来设置元素的宽度 本例演示如何使用像素值来设置元素的宽度。 设置元素的最大高度 此示例演示如何设置元素的最大高度。 使用百分比来设置元素的最大宽度 本例

  • 问题内容: 我对(N,)维数组和(N,1)维数组之间的转换有疑问。例如,y是(2,)维。 但是下面将显示y2为(2,1)维。 在不复制的情况下将y2转换回y的最有效方法是什么? 谢谢汤姆 问题答案: 为此工作 还请注意,除非需要复制新形状(在这里不需要这样做),否则它不会复制数据: