• 有效Log4j按指定级别定向输出日志到指定的输出文件地址配置Threshold,log4j中如何屏蔽父logger输出源rootlogger的additivity配置,log4j向多个文件记录日志


     log4j向多个文件记录日志

    关键配置,指定想要的日志级别信息输出到指定的日志文件中:

    log4j.appender.errorLogger.Threshold=ERROR
    #扩展,可指定只在子类自己的输出源中输出,不在父类的输出源中输出
    log4j.additivity.errorLogger=false
    

    additivity配置例子参考log4j配置文件中的additivity属性,additivity配置详细log4j additivity解说

    log4j.logger.com.sgcc=debug, platform1
    log4j.additivity.com.sgcc.test.p2=false
    log4j.logger.com.sgcc.test.p1=debug, platform2
    log4j.logger.com.sgcc.test.p2=debug, platform3

    完整配置:

      # 定义缺省的日志级别和输出对象
      log4j.rootLogger=INFO,console,errorLogger,corLogger


    #制定logger的名字,用于外部获取此logger #log4j.logger.tracer=DEBUG,tracer log4j.logger.errorLogger=ERROR,errorLogger log4j.logger.corLogger=INFO,corLogger # 设定错误日志文件的输出模式 log4j.appender.errorLogger=org.apache.log4j.DailyRollingFileAppender log4j.appender.errorLogger.File=${log.home}/core/error.log log4j.appender.errorLogger.Threshold=ERROR log4j.appender.errorLogger.layout=org.apache.log4j.PatternLayout log4j.appender.errorLogger.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5p] [%c{1}] %X{uidMDC} %m%n # 设定审计日志文件的输出模式 log4j.appender.corLogger=org.apache.log4j.DailyRollingFileAppender log4j.appender.corLogger.File=${log.home}/core/cor.log log4j.appender.corLogger.layout=org.apache.log4j.PatternLayout log4j.appender.corLogger.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5p] [%c{1}] %X{uidMDC} %m%n # 设定跟踪日志文件的输出模式 #log4j.appender.tracer=org.apache.log4j.DailyRollingFileAppender #log4j.appender.tracer.File=${log.home}/core/tracer.log #log4j.appender.tracer.layout=org.apache.log4j.PatternLayout #log4j.appender.tracer.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5p] [%c{1}] %X{uidMDC} %m%n

      

    可是上面,还是上面指定控制还不是完美控制的,因为log4j记录器默认可输出的级别在输出日志信息级别以上的话都会输出,因为ERROR比INFO、DEBUG等级别高,所以想要INFO级别的日志信息输出到info.log日志文件中、DEBUG级别的日志信息输出到debug.log日志文件中等这样的需要话。需要重写log4j appender类。看代码:

    新建一个类:

    package com.core.util;
    
    import org.apache.log4j.DailyRollingFileAppender;
    import org.apache.log4j.Priority;
    
    public class ICoreDailyRollingFileAppender extends DailyRollingFileAppender {
    
    	@Override
    	public boolean isAsSevereAsThreshold(Priority priority) {
    		
    		return this.getThreshold().equals(priority);
    	}
    }
    

    再到log4j.porperties文件中配置:

    # 定义缺省的日志级别和输出对象
    log4j.rootLogger=INFO,console,errorLogger,corLogger
    
    #制定logger的名字,用于外部获取此logger
    #log4j.logger.tracer=DEBUG,tracer
    
    log4j.logger.errorLogger=ERROR,errorLogger
    log4j.logger.corLogger=INFO,corLogger
    
    # 设定错误日志文件的输出模式
    log4j.appender.errorLogger=com.core.util.ICoreDailyRollingFileAppender
    log4j.appender.errorLogger.File=${log.home}/core/error.log
    log4j.appender.errorLogger.Threshold=ERROR
    log4j.appender.errorLogger.layout=org.apache.log4j.PatternLayout
    log4j.appender.errorLogger.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5p] [%c{1}] %X{uidMDC} %m%n
    
    # 设定审计日志文件的输出模式
    log4j.appender.corLogger=com.core.util.ICoreDailyRollingFileAppender
    log4j.appender.corLogger.File=${log.home}/core/cor.log
    log4j.appender.corLogger.layout=org.apache.log4j.PatternLayout
    log4j.appender.corLogger.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5p] [%c{1}] %X{uidMDC} %m%n
    
    # 设定跟踪日志文件的输出模式
    #log4j.appender.tracer=com.core.util.ICoreDailyRollingFileAppender
    #log4j.appender.tracer.File=${log.home}/core/tracer.log
    #log4j.appender.tracer.layout=org.apache.log4j.PatternLayout
    #log4j.appender.tracer.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5p] [%c{1}] %X{uidMDC} %m%n
    

      OK,

    参考: 

    Log4j按级别输出日志到不同文件配置分析- http://blog.csdn.net/projava/article/details/7344839

  • 相关阅读:
    【代码笔记】Web-CSS-CSS伪类
    「MoreThanJava」Day 4:面向对象基础
    96年/离职8个月/拒绝华为offer/目前自由职业-记这大半年来的挣扎与迷茫
    nginx配置path_info,让codeigniter访问其它路由不是404
    Golang 与 JS 的字符串截取大同小异
    [Py] Python 的 shape、reshape 含义与用法
    微信公众号分享接口报错 "errMsg": "config:invalid url domain"
    vi以及vim打开文件中文乱码
    常见的移动端H5页面开发遇到的坑和解决办法
    CSS3 Transform 属性详解
  • 原文地址:https://www.cnblogs.com/svennee/p/4125996.html
Copyright © 2020-2023  润新知