zoukankan      html  css  js  c++  java
  • log4j 配置和使用

    本篇简单介绍基于Java的日志记录工具 log4j

    log4j

    Apache Log4j是一个基于Java的日志记录工具,是几种Java日志框架之一。最新版本为2.0

    log4j

    使用Maven下载:
    (Maven使用可以参照以往的博客)

    
    		<!-- https://mvnrepository.com/artifact/log4j/log4j -->
    		<dependency>
    		    <groupId>log4j</groupId>
    		    <artifactId>log4j</artifactId>
    		    <version>1.2.17</version>
    		</dependency>
    
    

    log4j配置

    鄙人的使用时基于JFinal的。
    新建property文件,log4j.property放在scr中。

    log4j格式

    • 日志级别
        
        //日志级别
        log4j.rootLogger = appender1,appender2...
    

    log4j的输出级别一共有五级(其中级别最高的是FATAL FATAL>ERROR>WARN>INFO>DEBUG)

    Tips:rootLogger 会对整个项目生效,如果想指定的包使用log4j.logger.packageName

    • 日志输出路径
        //日志输出路径(这里为控制台)
        log4j.appender.appender1=org.apache.log4j.ConsoleAppender;
    
    1. 1 ConsoleAppender(控制台)
    2. 2 FileAppender(文件)
    3. 3 DailyRollingFileAppender(每天产生一个日志文件)
    4. 4 RollingFileAppender(文件大小到达指定尺寸时产生一个新的文件)
    5. 5 WriteAppender(将日志信息以流格式发送到任意指定的地方)
    6. 6 JDBCAppender(将日志信息保存到数据库中)
    • 日志编码
        //日志输出路径(这里为`UTF-8`)
        log4j.appender.appender1.encoding=UTF-8;
     
    
    • 日志路径
        //日志路径(这里为`WebRoot`同级的`log`文件夹的`error.log`)
        log4j.appender.appender1.File=log/error.log;
    
    • 日志布局格式
        //日志布局格式(这里为`PatternLayout`)
        log4j.appender.appender1.layout=org.apache.log4j.PatternLayout;
    
    • 日志输出格式
        //日志输出格式(这里为`一种日期格式`)
        log4j.appender.appender1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
     
    
    1. 1 %c 输出日志信息所属的类的全名
    2. 2 %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy-M-dd HH:mm:ss }
    3. 3 %f 输出日志信息所属的类的类名
    4. 4 %l 输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行
    5. 5 %m 输出代码中指定的信息,如log(message)中的message
    6. 6 %n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
    7. 7 %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出的,则为DEBUG,依此类推
    8. 8 %r 输出自应用启动到输出该日志信息所耗费的毫秒数
    9. 9 %t 输出产生该日志事件的线程名
    • 要追加的属性
     
        log4j.appender.ServerDailyRollingFile.Append=true 
     
    

    log4j.property

    配置log4j.property

     
    		 log4j.rootLogger=E,I,console
    		
    		log4j.appender.E=org.apache.log4j.DailyRollingFileAppender
    		log4j.appender.E.encoding=UTF-8
    		log4j.appender.E.Append=true
    		log4j.appender.E.Threshold=error
    		log4j.appender.E.File=log/error.log
    		log4j.appender.E.layout=org.apache.log4j.PatternLayout
    		log4j.appender.E.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
    		
    		log4j.appender.I=org.apache.log4j.DailyRollingFileAppender
    		log4j.appender.I.encoding=UTF-8
    		log4j.appender.I.Append=true
    		log4j.appender.I.Threshold=info
    		log4j.appender.I.File=log/info.log
    		log4j.appender.I.layout=org.apache.log4j.PatternLayout
    		log4j.appender.I.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
    		
    		
    		log4j.appender.console=org.apache.log4j.ConsoleAppender
    		log4j.appender.console.Target=System.out
    		log4j.appender.console.layout=org.apache.log4j.PatternLayout
    		log4j.appender.console.layout.ConversionPattern=%n%-d{yyyy-MM-dd HH:mm:ss}%n[%p]-[Thread: %t]-[%C.%M()]: %m%n
    
    
    

    Java:比如在JFinal启动之后输出一条info信息。

     
    	 @Override
    		public void afterJFinalStart() {
    		        // 添加对应类的class
    			Logger log=Logger.getLogger(Config.class);
    			
    			log.info("success");
    			
    		}
    
    

    outPut

    屏蔽某个类的日志

    
    # xxx为需要屏蔽的类名 如log4j.logger.org.eclipse.jetty;ERROR为只打印ERROR级别及以上级别的日志
    log4j.logger.xxx=ERROR
    
    

    log4j默认日志级别:all<trace<debug<info<warn<error<fatal<off

  • 相关阅读:
    拉姆达表达式(lambda Expressions)
    Func,Action 的介绍
    VS2012 此模板尝试加载组件程序集”NuGet.VisualStudio.interop,Version=1.0.0.0 的解决
    444 英语口语
    Base algorithm
    Windows Search Service
    Windows Azure Storage
    HDU 3395 Special Fish
    CodeForces 235B Let's Play Osu!
    HDU 3435 A new Graph Game
  • 原文地址:https://www.cnblogs.com/chenjy1225/p/9661363.html
Copyright © 2011-2022 走看看