Log4j按级别输出日志到不同文件配置

时间:2023-01-20 21:20:45

1、自定义LogFileAppender类,继承DailyRollingFileAppender,实现Log4j按级别输出日志到不同文件。

package com.liying.mango.common.interceptor;

import org.apache.log4j.DailyRollingFileAppender;
import org.apache.log4j.Priority;

public class LogFileAppender extends DailyRollingFileAppender {

@Override
public boolean isAsSevereAsThreshold(Priority priority) {
return this.getThreshold().equals(priority);
}
}

 

2、log4j.properties配置文件

log4j.rootLogger=info, stdout, info, error, fileout

## 定义控制台日志管理器
log4j.appender.stdout
=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout
=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern
=[%-5p %d %t] %l **** %m%n

## 定义INFO和ERROR级别文件输出日志管理器
log4j.appender.fileout
=org.apache.log4j.DailyRollingFileAppender
log4j.appender.fileout.File
=/usr/logs/pear/all.log
log4j.appender.fileout.layout
=org.apache.log4j.PatternLayout
log4j.appender.fileout.layout.ConversionPattern
=[%-5p %d %t] %l **** %m%n

## 定义INFO级别文件输出日志管理器
log4j.logger.info
=com.liying.mango.common.interceptor.LogFileAppender
## 每天产生一个日志文件,将日志信息输出到一个日志文件,并且每天输出到一个新的日志文件
log4j.appender.info
=org.apache.log4j.DailyRollingFileAppender
log4j.appender.info.layout
=org.apache.log4j.PatternLayout
log4j.appender.info.layout.ConversionPattern
=[%-5p %d %t] %l **** %m%n
log4j.appender.info.datePattern
='.'yyyy-MM-dd
log4j.appender.info.Threshold
= INFO
log4j.appender.info.append
=true
log4j.appender.info.File
=/usr/logs/pear/info.log

## 定义ERROR级别文件输出日志管理器
log4j.logger.error
=com.liying.mango.common.interceptor.LogFileAppender
log4j.appender.error
=org.apache.log4j.DailyRollingFileAppender
log4j.appender.error.layout
=org.apache.log4j.PatternLayout
log4j.appender.error.layout.ConversionPattern
=[%-5p %d %t] %l **** %m%n
log4j.appender.error.datePattern
='.'yyyy-MM-dd
log4j.appender.error.Threshold
= ERROR
log4j.appender.error.append
=true
log4j.appender.error.File
=/usr/logs/pear/error.log

本文整理自网络