【问题标题】:How to write in specific File using log4j appenders如何使用 log4j appenders 写入特定文件
【发布时间】:2020-06-12 21:04:41
【问题描述】:

我正在开发 Spring 并使用 log4j 进行日志记录。现在我有一个特定的要求来记录特定文件中的内容,这里是审计文件。以下是我为此使用的配置。

尝试使用以下语法访问该特定文件,但两者都不起作用并显示以下语法。

private Logger logger = Logger.getLogger("AUDIT_APPENDER");
private Logger logger = Logger.getLogger("audit");

配置: 名称:默认 状态:“调试”

属性: 财产: 名称:base_pattern_layout 值:“%d{DEFAULT}{GMT+0} %X{用户标识符}”

附加器:

RollingFile:
  - name: Test1_APPENDER
    fileName: ${LOG_DIR}/service.log
    filePattern: ${LOG_DIR}/test.%d{yyyyMMdd}.log.gz
    PatternLayout:
      Pattern: "app > ${base_pattern_layout} %-5level %logger{8}:%line - %msg%n"
    Policies:
      TimeBasedTriggeringPolicy:
        interval: "1"
    DefaultRolloverStrategy:
      Delete:
        basePath: ${LOG_DIR}
        IfFileName:
          glob: "service.*.log.gz"
        IfLastModified:
          age: "1d"
  - name: AUDIT_APPENDER
    fileName: ${LOG_DIR}/audit.log
    filePattern: ${LOG_DIR}/audit.%d{yyyyMMdd}.log.gz
    PatternLayout:
      Pattern: "aud > ${base_pattern_layout} %-5level %msg%n"
    Policies:
      TimeBasedTriggeringPolicy:
        interval: "1"
    DefaultRolloverStrategy:
      Delete:
        basePath: ${LOG_DIR}
        IfFileName:
          glob: "audit.*.log.gz"
        IfLastModified:
          age: "1d"

Console:
  - name: Test1_APPENDER
    target: SYSTEM_OUT
    PatternLayout:
      Pattern: "app > ${base_pattern_layout} %logger{8}:%line - %msg%n"
  - name: AUDIT_APPENDER
    target: SYSTEM_OUT
    PatternLayout:
      Pattern: "aud > ${base_pattern_layout} - %msg%n"

记录器:

Root:
  level: INFO
  AppenderRef:
    ref: EXT_APPENDER

Logger:
  - name: com.test
    additivity: false
    level: debug
    AppenderRef:
      ref: Test1_APPENDER
  - name: audit
    additivity: false
    level: INFO
    AppenderRef:
      ref: AUDIT_APPENDER

【问题讨论】:

    标签: spring log4j


    【解决方案1】:

    您应该在 getLogger 方法中传递 Class,如下所示

        private static final Logger logger = LogManager.getLogger(Test.class);
    

    创建 log4j.properties 文件并将其放在资源文件夹中。 添加以下内容

    # Define the root logger with appender file
    log4j.rootLogger = DEBUG, FILE
    
    # Define the file appender
    log4j.appender.FILE=org.apache.log4j.FileAppender
    
    # Set the name of the file
    log4j.appender.FILE.File=${log}/log.out
    
    # Set the immediate flush to true (default)
    log4j.appender.FILE.ImmediateFlush=true
    
    # Set the threshold to debug mode
    log4j.appender.FILE.Threshold=debug
    
    # Set the append to false, overwrite
    log4j.appender.FILE.Append=false
    
    # Define the layout for file appender
    log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
    log4j.appender.FILE.layout.conversionPattern=%m%n
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-27
    • 2015-10-25
    • 1970-01-01
    • 2014-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多