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

时间:2020-06-12 06:01:33

标签: spring log4j

我正在使用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}”

申请者:

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

1 个答案:

答案 0 :(得分:0)

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

    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
相关问题