0

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

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

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

在此处输入图像描述

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

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

附加器:

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
4

1 回答 1

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
于 2020-06-12T08:25:39.050 回答