log4j.properties自定义日志配置-创新互联

一、通用的写法

log4j.properties

成都创新互联公司主打移动网站、成都网站设计、成都网站建设、网站改版、网络推广、网站维护、主机域名、等互联网信息服务,为各行业提供服务。在技术实力的保障下,我们为客户承诺稳定,放心的服务,根据网站的内容与功能再决定采用什么样的设计。最后,要实现符合网站需求的内容、功能与设计,我们还会规划稳定安全的技术方案做保障。
# 设置root logger等级为ALL,且appender有A1和FILE
log4j.rootLogger=ALL, A1,A3

#设置com.example.test logger
log4j.logger.com.example.test=DEBUG,A1,A3
# 取消继承父类
log4j.additivity.com.example.test=false

# 设置个控制台输出源,该appender名叫:A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n


#设置个文件输出源,该appender名叫:FILE
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.file=D:/logs/log4j.log
log4j.appender.FILE.append=true
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n


#设置个文件输出源(滚动文件输出源,按照文件大小重新生成临时文件),该appender名叫:A2
log4j.appender.A2=org.apache.log4j.RollingFileAppender
log4j.appender.A2.file=D:/logs/log4j.log
log4j.appender.A2.append=true
#maxFileSize  文件大大小,超过会将旧的数据放在临时文件,新的日志继续打印在file指定的文件名中
log4j.appender.A2.maxFileSize=1
#maxBackupIndex  文件大备份数,默认为1
log4j.appender.A2.maxBackupIndex=10
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n



#设置个文件输出源(滚动文件输出源,按照日期重新生成临时文件),默认按照天分割日志,该appender名叫:A3
log4j.appender.A3=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A3.file=D:/logs/log4j.log
log4j.appender.A3.layout=org.apache.log4j.PatternLayout
log4j.appender.A3.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

测试代码
package com.example.test;

import java.io.PrintWriter;

import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.ConsoleAppender;
import org.apache.log4j.Layout;
import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;
import org.apache.log4j.SimpleLayout;
import org.apache.log4j.spi.LoggingEvent;
import org.junit.Test;

public class TestLog4j {

    private static final Logger logger = Logger.getLogger(TestLog4j.class);
    
    @Test
    public void testLog4j() {
        // 日志级别 
        logger.fatal("fatal"); // 严重错误,一般会造成系统崩溃 和终止运行 
        logger.error("error"); // 错误信息,但不会影响系统运行 
        logger.warn("warn"); // 警告信息,可能会发生问题 
        logger.info("info"); // 程序运行信息,数据库的连接、网 络、IO操作等 
        logger.debug("debug"); // 调试信息,一般在开发阶段使 用,记录程序的变量、参数等 
        logger.trace("trace"); // 追踪信息,记录程序的所有流程 信息
    }
}

测试结果

二、Log4j如何屏蔽某个类的日志打印 Log4j屏蔽某个类的日志打印

项目中使用的是log4j.properties的方式配置,在项目启动后有一个任务每隔半小时会运行,查不到数据的时候会打印warn级别的日志,由于数量太多想屏蔽该类日志的打印。

网上查找了方法,可以通过设置log4j.logger.xxx=ERROR(xxx代表需要屏蔽的类,ERROR代表该类只打印error及以上级别的日志,如log4j.logger.java.sql.Connection=ERROR)来屏蔽。

于是在项目中设置log4j.logger.org.search.DataSearch=ERROR后重启项目却发现不起作用,后来经过测试,发现xxx设置成包名log4j.logger.org.search=ERROR就成功了。

注:

  • log4j默认日志级别all

Log4j屏蔽指定日志

log4j.logger.org.springframework=OFF

log4j.logger.org.apache.struts2=OFF

log4j.logger.com.opensymphony.xwork2=OFF

log4j.logger.com.ibatis=OFF

log4j.logger.org.hibernate=OFF

注:

  • log4j.logger.xxx=error

  • xxx:表示要屏蔽的类

三、Logger.getLogger(字符串)用法

log4j中的Logger.getLogger()可以不用加载一个类,也可以传字符串的,这是一种通用做法,比如

Logger logger = Logger.getLogger("com.MyLog");

logger.info("...");

那么Logger首先会去找log4j.properties中的log4j.category.com.MyLog对应的Appender来写日志,当然如果你配置了rootAppender的话不用配其他的Appender也没关系。

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网页名称:log4j.properties自定义日志配置-创新互联
文章链接:http://pwwzsj.com/article/djehhp.html