如何使用log4j附加程序写入特定文件

问题描述 投票:0回答:1

我正在Spring上工作,并使用log4j进行日志记录。现在,我有一个特定要求将某些内容记录在特定文件中,这是审核文件。以下是我为此使用的配置。

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

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

enter image description here

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

属性: 属性: 名称:base_pattern_layout 值:“%d {DEFAULT} {GMT + 0}%X {user-identifier}”

Appenders:

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个回答
0
投票

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

    private static final Logger logger = LogManager.getLogger(Test.class);
© www.soinside.com 2019 - 2024. All rights reserved.