• Log4j笔记----01


    新建普通java project

    项目创建文件如上

    log4j.properties中编辑属性

     ### 设置###
    log4j.rootLogger = debug,stdout,D,E
    
    ### 输出信息到控制台 ###
    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 = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
    
    ### 输出DEBUG 级别以上的日志到=E://logs/log.log ###
    log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.D.File = E://logs/log.log
    log4j.appender.D.Append = true
    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 ] - [ %p ]  %m%n
    

    (后面分析属性代表的意义)

    (E:/logs/log.log如果不存在会自动创建)

    编写Test.java

    import org.apache.log4j.Logger;
    /**
     * @author ZZZ
     * @date 2017年5月5日上午10:39:50
     */
    
    public class Test {
    	private static Logger logger = Logger.getLogger(Test.class);
    	
    	public static void main(String[] args){
    		//System.out.println("this is println message .");
    		
    		//record message of level debug
    		logger.debug("This is a debug message");
    		
    		//record message of level info
    		logger.info("This is a info message");
    		
    		//record message of level error
    		logger.error("this is a error message");
    		
    	}
    }
    

    运行Test.java , 控制台输出如下

    找到E:/logs/log.log 打开,如下


    log4j.properties属性分析

     ### 设置###
    log4j.rootLogger = debug ,stdout,D
    

    log4j.rootLogger = [ level ] , appenderName1, appenderName2, …

    level 是日志最低等级(大于等于这个等级日志会输出)

    日志等级:ERROR > WARN > INFO > DEBUG

    appdenderName 在properties后面配置会使用,如下

    log4j.appender.stdout = org.apache.log4j.ConsoleAppender
    log4j.appender.D = org.apache.log4j.DailyRollingFileAppender

    设置stdout 和 D 的 log 类型

    log4j.appender.D.File = E://logs/log.log

     指定D的位置

    log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
    
    log4j.appender.D.layout = org.apache.log4j.PatternLayout
    

    设置log输出格式

    example:把D 换成HTMLLayout,打开log.log如下

    log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
    
    log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
    

    针对PatternLayout的设置,设置参数如下:

    1)-X号: X信息输出时左对齐。
    2)%p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL。
    3)%d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921。
    4)%r: 输出自应用启动到输出该log信息耗费的毫秒数。
    5)%c: 输出日志信息所属的类目,通常就是所在类的全名。
    6)%t: 输出产生该日志事件的线程名。
    7)%l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)。
    8)%x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。
    9)%%: 输出一个"%"字符。
    10)%F: 输出日志消息产生时所在的文件名称。
    11) %L: 输出代码中的行号。
    12)%m: 输出代码中指定的消息,产生的日志具体信息。
    13)%n: 输出一个回车换行符,Windows平台为"
    ",Unix平台为"
    "输出日志信息换行。
    可以在%与模式字符之间加上修饰符来控制其最小宽度、最大宽度、和文本的对齐方式。如:
    1)%20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,默认的情况下右对齐。
    2)%-20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,"-"号指定左对齐。
    3)%.30c:指定输出category的名称,最大的宽度是30,如果category的名称大于30的话,就会将左边多出的字符截掉,但小于30的话也不会有空格。
    4)%20.30c:如果category的名称小于20就补空格,并且右对齐,如果其名称长于30字符,就从左边交远销出的字符截掉。
    
    log4j.appender.D.Append = true
    

     如果设置为true,信息会以追加到文件末尾的形式,如果为false则会覆盖掉

    log4j.appender.D.Threshold = DEBUG 
    

     appender D 输出 大于等于 DEBUG level 的log信息。


  • 相关阅读:
    mysql删除重复记录语句的方法
    超详细mysql left join,right join,inner join用法分析
    CGLib动态代理原理及实现
    mysql开启慢查询日志及查询windows
    数据库事务隔离级别及脏读、幻读、不可重复读及传播行为
    java的动态代理机制详解
    MySQL常见面试题
    2019年的冬季,蒟蒻的PKUWC游记(12.20~12.23)
    初学生成函数(一)——普通生成函数
    转:基于jquery点击切换样式并且可以记忆cookie
  • 原文地址:https://www.cnblogs.com/zzzong/p/6812171.html
Copyright © 2020-2023  润新知