代码之家  ›  专栏  ›  技术社区  ›  michele

log4j2属性为控制台和文件设置不同的阈值

  •  0
  • michele  · 技术社区  · 6 年前

    我想为只记录错误设置控制台阈值,并在信息级别为文件appenader设置阈值。

    status = info
    name= properties_configuration
    
    property.basePath = C:\\
    
    appender.console.type = Console
    appender.console.name = consoleLogger
    appender.console.target = SYSTEM_OUT
    appender.console.layout.type = PatternLayout
    appender.console.threshold=ERROR
    
    appender.console.layout.pattern = %d{yyyy-MM-dd HH:mm:ss.SSS} %level [%t] [%c] [%M] [%l] - %msg%n
    
    appender.rolling.type = RollingFile
    appender.rolling.name = fileLogger
    appender.rolling.fileName= ${basePath}my.log
    appender.rolling.filePattern= ${basePath}my_%d{yyyyMMdd}.log.gz
    appender.rolling.layout.type = PatternLayout
    appender.rolling.layout.pattern = %d{yyyy-MM-dd HH:mm:ss.SSS} %level [%t] [%c] [%M] [%l] - %msg%n
    
    appender.rolling.policies.type = Policies
    
    appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
    appender.rolling.policies.time.interval = 1
    appender.rolling.policies.time.modulate = true
    appender.rolling.strategy.type = DefaultRolloverStrategy
    appender.rolling.strategy.delete.type = Delete
    appender.rolling.strategy.delete.basePath = ${basePath}
    appender.rolling.strategy.delete.maxDepth = 1
    appender.rolling.strategy.delete.ifLastModified.type = IfLastModified
    appender.rolling.strategy.delete.ifLastModified.age = 1d
    
    rootLogger.level = info
    rootLogger.additivity = false
    rootLogger.appenderRef.rolling.ref = fileLogger
    rootLogger.appenderRef.console.ref = consoleLogger
    

    我设置了阈值,但信息级别是在文件中记录的,也在控制台中。

    怎么了? 谢谢

    1 回复  |  直到 6 年前
        1
  •  0
  •   Prabhakar D    6 年前

    您可以使用筛选器将控制台附加程序设置为不记录高于错误级别,如下所示。

    appender.console.filter.threshold.type = ThresholdFilter
    appender.console.filter.threshold.level = error