• log4j 配置参数简介


    # Set log levels #
    log4j.rootLogger = All, Console, LogFile, ErrorFile
    
    # Output the log info to the Java Console #
    log4j.appender.Console = org.apache.log4j.ConsoleAppender
    log4j.appender.Console.Target = System.out
    log4j.appender.Console.ImmediateFlush = true
    log4j.appender.Console.Threshold = DEBUG
    log4j.appender.Console.layout = org.apache.log4j.PatternLayout
    log4j.appender.Console.layout.ConversionPattern = [%d{yy-MM-dd HH:mm:ss}] [%p] %c %t : %m%n
    
    # Save the log info to the log file #
    log4j.appender.LogFile = org.apache.log4j.RollingFileAppender
    log4j.appender.LogFile.File = ./logs/ftp.info.log
    log4j.appender.LogFile.Append = true
    log4j.appender.LogFile.ImmediateFlush = true
    log4j.appender.LogFile.MaxFileSize = 10MB
    log4j.appender.LogFile.MaxBackupIndex = 16
    log4j.appender.LogFile.Threshold = DEBUG
    log4j.appender.LogFile.layout = org.apache.log4j.PatternLayout
    log4j.appender.LogFile.layout.ConversionPattern = [%d{yy-MM-dd HH:mm:ss}] [%p] %c %t : %m%n
    
    # Save the error info to the error file. A file one day. #
    log4j.appender.ErrorFile = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.ErrorFile.File = ./logs/ftp.error.log
    log4j.appender.ErrorFile.Append = true
    log4j.appender.ErrorFile.ImmediateFlush = true
    log4j.appender.ErrorFile.Threshold = ERROR
    log4j.appender.ErrorFile.layout = org.apache.log4j.PatternLayout
    log4j.appender.ErrorFile.layout.ConversionPattern = [%d{yy-MM-dd HH:mm:ss}] [%p] %c %t : %m%n
    

      

    Log4j rootLogger配置

    Log4j 根配置语法

    log4j.rootLogger = [ level ] , appenderName, appenderName, …

    指代 把指定级别的日志信息输出到指定的一个或者多个位置

    这里我们把 ALL 层级以及以上的信息输出到Console和LogFile, ErrorFile;

    Log4j Append属性指定是否追加内容

    这里就有个属性log4j.appender.xx.Append默认就是true是追加的,我们这里Append false结果是覆盖前面的文件

    Log4j Threshold属性指定输出等级

    有时候我们需要把一些报错ERROR日志单独存到指定文件 ,这时候,Threshold属性就派上用场了;

    Threshold属性可以指定日志level 

    Log4j根据日志信息的重要程度,分OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL

    log4j.appender.ErrorFile.Threshold = ERROR

    log4j.appender.LogFile.Threshold = DEBUG

    log4j layout日志信息格式

    Log4j提供的layout有以下几种

    org.apache.log4j.HTMLLayout(以HTML表格形式布局),  

    org.apache.log4j.PatternLayout(可以灵活地指定布局模式),  

    org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),  

    org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

    HTMLLayout实例

    #Console 

    log4j.appender.Console=org.apache.log4j.ConsoleAppender 

    log4j.appender.Console.layout=org.apache.log4j.HTMLLayout

    标准的html table表格格式,显示信息包括 线程 等级 类 报错信息;

    PatternLayout  推荐使用,很灵活

    有个ConversionPattern属性,灵活配置输出属性:

    %m 输出代码中指定的消息;

    %M 输出打印该条日志的方法名;

    %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL;

    %r 输出自应用启动到输出该log信息耗费的毫秒数;

    %c 输出所属的类目,通常就是所在类的全名;

    %t 输出产生该日志事件的线程名;

    %n 输出一个回车换行符,Windows平台为"rn”,Unix平台为"n”;

    %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy-MM-dd HH:mm:ss,SSS},输出类似:2002-10-18 22:10:28,921;

    %l 输出日志事件的发生位置,及在代码中的行数;

    SimpleLayout简单布局:

    #Console  
    log4j.appender.Console=org.apache.log4j.ConsoleAppender  
    log4j.appender.Console.layout=org.apache.log4j.SimpleLayout

    运行输出:

                  INFO - 普通Info信息

                  DEBUG - 调试debug信息

                  ERROR - 报错error信息

                  WARN - 警告warn信息

                  FATAL - 严重错误fatal信息

                  ERROR - 报错信息   java.lang.IllegalArgumentException: 非法参数

                                     at com.open1111.Test.main(Test.java:16)

    只输出级别和信息

    TTCCLayout我们测试下:

    #Console  
    log4j.appender.Console=org.apache.log4j.ConsoleAppender  
    log4j.appender.Console.layout=org.apache.log4j.TTCCLayout

    运行输出: [main] INFO com.open1111.Test - 普通Info信息

    Log4j appender输出类型配置

    Log4j官方的appender给出了一下几种实现

    org.apache.log4j.ConsoleAppender(控制台),  

    org.apache.log4j.FileAppender(文件),  

    org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),  

    org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),  

    org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

    假如日志数据量不是很大,我们可以用DailyRollingFileAppender 每天产生一个日志,方便查看;

    假如日志数据量很大,我们一般用RollingFileAppender,固定尺寸的日志,假如超过了 就产生一个新的文件;

  • 相关阅读:
    Java常用类之【日期相关类】
    Java常用类之【Math类、Random类、System类、Runtime类】
    Java常用类之【字符串相关类型】
    Java常用类之【八种基本数据类型】
    打印杨辉三角--for循环
    Eclipse设置文字大小
    Eclipse之JSON导包
    Java中设计模式之工厂模式-4
    PC 微信页面倒计时代码 safari不兼容date的问题
    在apache中设置访问目录后进入的默认页面为index.php
  • 原文地址:https://www.cnblogs.com/hzxy-blog/p/11242654.html
Copyright © 2020-2023  润新知