随笔 - 1357  文章 - 0  评论 - 1104  阅读 - 1941万

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

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 
复制代码

3、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级别文件输出日志管理器
##每一天产生1个日志文件
##log4j.appender.fileout=org.apache.log4j.DailyRollingFileAppender
log4j.appender.fileout=org.apache.log4j.RollingFileAppender
log4j.appender.fileout.File=/home/liying/logs/pear/all.log
log4j.appender.fileout.layout=org.apache.log4j.PatternLayout
log4j.appender.fileout.layout.ConversionPattern=[%-5p %d %t] %l **** %m%n
##当文件大小超过20MB时,将原来的文件名改为*.log.1,再使用*.log接收新的日志记录。此处保留10000个备份文件。
log4j.appender.fileout.MaxFileSize=20MB
log4j.appender.fileout.MaxBackupIndex=10000
log4j.appender.fileout.Append=true

## 定义INFO级别文件输出日志管理器
log4j.logger.info=com.liying.peach.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=/home/liying/logs/peach/info.log

## 定义ERROR级别文件输出日志管理器
log4j.logger.error=com.liying.peach.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=/home/liying/logs/peach/error.log 
复制代码

本文整理自网络

posted on   Ruthless  阅读(2652)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示