• log4j配置文件加载


    log4j的jar包内部包含preference默认配置,使用者可以通过log4j.xml或log4j.properties来指定自己的配置。xml比properties优先。另外注意java读取properties文件时只是通过=号来分割键值对,所以#注释不能与键值对定义放在同一行。

    指定配置文件的方式有:

      1.log4j.jar包会先使用System.getProperty("log4j.xml或configuration")看是否有jvm参数,我们可以通过java -Dlog4j.configuration=file:/full_path/log4j.properties 来指定(file:前缀不能省)。

      2.代码中使用PropertyConfigurator.configure(param);来指定。比较令人困惑的可能是相对路径的问题了,在IDE或jar包中可以通过getClassLoader().getResource("log4j.properties");来获得存在于CLASSPATH中资源文件。

    多个jar包共用一个log4j.jar的情况下可以实现让不同jar包使用不同的输出等级,

    如将rootLogger设为info级别,而将自己的包设为debug级别:

    log4j.logger.包名=DEBUG

    也可以指定每个jar包输出到不同的文件:

    log4j.logger.包名1=DEBUG,jar1logger

    log4j.appender.jar1logger=org.apache.log4j.RollingFileAppender
    log4j.appender.jar1logger.layout=org.apache.log4j.PatternLayout
    log4j.appender.jar1logger.layout.ConversionPattern=%d [%t]<%-5p> %c -> %m%n
    log4j.appender.jar1logger.File=/var/log/mylog/jar1.log
    log4j.appender.jar1logger.Append=true
    log4j.appender.jar1logger.MaxFileSize=1024KB
    log4j.appender.jar1logger.MaxBackupIndex=5

    下面是最简单的一份配置:

    ### set log levels ,stdout,D,E是自己起的名字###
    #设置rootLogger级别为INFO则屏蔽debug信息,级别all<debug < info < warn < error < fatal<off
    log4j.rootLogger = INFO, stdout
    
    ### 输出到控制台 ###
    log4j.appender.stdout = org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.Target = System.out
    log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern =  [fyk]%d{ABSOLUTE} %p [%C{1}.%M]:%L - %m%n
    
    ### 输出到日志文件 ###
    log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.D.File = logs/all.log
    log4j.appender.D.Append = true
    ## 输出DEBUG级别以上的日志
    log4j.appender.D.Threshold = DEBUG
    log4j.appender.D.layout = org.apache.log4j.PatternLayout
    log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [%t:%r][%C{1}.%M] - [%p]  %m%n
    ##ERROR
    log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.E.File =logs/error.log
    log4j.appender.E.Append = true
    log4j.appender.E.Threshold = ERROR
    log4j.appender.E.layout = org.apache.log4j.PatternLayout
    log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [%t:%r][%C{1}.%M] - [%p]  %m%n
  • 相关阅读:
    图文详解——将本地项目上传到码云(gitee)远程仓库
    mysql 查询正在执行的sql
    MySql 缓冲池(buffer pool) 和 写缓存(change buffer) 转
    SQLserver 查询某个表的字段及字段属性
    FastDFS 客户端(二)
    FastDFS 服务器(一)
    C# WPF 正常的项目突然提示 当前上下文中不存在名称“InitializeComponent”
    C# 程序自动重启的解决方法
    Array知识点总结(一)
    JavaScript中为false的情况归档
  • 原文地址:https://www.cnblogs.com/makefile/p/5348539.html
Copyright © 2020-2023  润新知