• Log4j配置记录


    log4j的配置文件就是用来设置记录器的级别存放器布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。

    1、配置文件

    log4j配置文件的基本格式如下:

      ERROR 为严重错误 主要是程序的错误
      WARN 为一般警告,比如session丢失
      INFO 为一般要显示的信息,比如登录登出
      DEBUG 为程序的调试信息

     1 #配置根Logger:[输出级别],appender附加器1,appender附加器2...(附加器自己命名)
     2 #日志输出级别由低到高: DEBUG < INFO < WARN < ERROR < FATAL
     3 log4j.rootLogger = [日志输出级别level],附加器appenderName1,附加器appenderName2...
     4 
     5 #配置日志信息输出目的地Appender
     6  log4j.appender.附加器appenderName = appender类的完全限定名
     7  log4j.appender.附加器appenderName.option1 = value1
     8  log4j.appender.附加器appenderName.optionN = valueN
     9 
    10 #配置日志信息的格式
    11 log4j.appender.附加器appenderName.layout  =  layout类的完全限定名
    12 log4j.appender.附加器appenderName.layout.option1  =  value1 
    13 log4j.appender.附加器appenderName.layout.optionN  =  valueN 

    如下配置例子:运行项目会在ConsoleAppender(即控制台)输出ConversionPattern格式信息,并在:eclipse目录下/logs/springmvcMybist/ssm.log输出日志内容

    #定义LOG输出级别
    log4j.rootLogger=INFO,Console,File
    #定义日志输出目的地为控制台
    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=[%c] - %m%n
    
    #文件大小到达指定尺寸的时候产生一个新的文件
    log4j.appender.File = org.apache.log4j.RollingFileAppender
    #指定输出目录
    log4j.appender.File.File = logs/springmvcMybist/ssm.log
    #定义文件最大大小
    log4j.appender.File.MaxFileSize = 10MB
    #输出所以日志,如果换成DEBUG表示输出DEBUG以上级别日志
    log4j.appender.File.Threshold = ALL
    log4j.appender.File.layout = org.apache.log4j.PatternLayout
    log4j.appender.File.layout.ConversionPattern =[%p] %d [%c]-%m%n

    Appender :日志输出目的地,Log4j提供的appender有以下几种:(appender类完全限定名

    1 org.apache.log4j.ConsoleAppender(控制台),
    2 org.apache.log4j.FileAppender(文件), 3 org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件), 4 org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件), 5 org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

    Layout:日志输出格式,Log4j提供的layout有以下几种:(layout类的完全限定名

    1 org.apache.log4j.HTMLLayout(以HTML表格形式布局),
    2 org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
    3 org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
    4 org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

    打印参数: Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,如下:

    1   %m   输出代码中指定的消息
    2   %p   输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL 
    3   %r   输出自应用启动到输出该log信息耗费的毫秒数 
    4   %c   输出所属的类目,通常就是所在类的全名 
    5   %t   输出产生该日志事件的线程名 
    6   %n   输出一个回车换行符,Windows平台为“/r/n”,Unix平台为“/n” 
    7   %d   输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss ,SSS},输出类似:2002年10月18日  22 : 10 : 28 , 921  
    8   %l   输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java: 10)

    3. 为不同的 Appender 设置日志输出级别:
    当调试系统时,我们往往注意的只是异常级别的日志输出,但是通常所有级别的输出都是放在一个文件里的,如果日志输出的级别是DEBUG!?工作量就大了,debug是最低级别,输出全部。
    这时我们也许会想要是能把异常信息单独输出到一个文件里该多好啊。当然可以,Log4j已经提供了这样的功能,我们只需要在配置中修改AppenderThreshold 就能实现,比如下面的例子:

    #1、配置根Logger:[输出级别],附加器1,附加器2...
    log4j.rootLogger=DEBUG,CONSOLE,D,E
    
    #2、配置日志信息输出目的地Appender
    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=[SSM] %d [%t] %-5p %-50.50c-%m%n
    
    #输出到日志文件
    #DailyRollingFileAppender每天产生一个日志文件
    log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.D.File = logs/springmvcMybaties/ssm.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 = [%p] [%d{yyyy-MM-dd HH:mm:ss}] [%c] [ %t:%r ] %m%n
    
    #保存异常信息到单独文件
    log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
    #异常日志文件名:eclipse根目录logs
    log4j.appender.E.File = logs/springmvcMybaties/ssm-error.log
    log4j.appender.E.Append = true
    #只输出ERROR级别以上的日志
    log4j.appender.E.Threshold = ERROR 
    log4j.appender.E.layout = org.apache.log4j.PatternLayout
    log4j.appender.E.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH:mm:ss}] [%c] [ %t:%r ] %m%n

    日志的输出路径可以放绝对路径

    另外log4j还可以配置发邮件功能(没试过)可以参考https://www.cnblogs.com/learnspace/p/6850129.html

    作者:howtosay
             
    放牛娃的个人笔记整理,每天记录一点点,进步一点点
  • 相关阅读:
    POJ1258——Prim——Agri-Net
    POJ2485——Prim——Highways
    POJ1789——Prim——Truck History
    POJ1125——Floyed——Stockbroker Grapevine
    POJ2253——Floyed——Frogger
    字符串处理 Codeforces Round #297 (Div. 2) B. Pasha and String
    模拟 Codeforces Round #297 (Div. 2) A. Vitaliy and Pie
    DP+埃氏筛法 Codeforces Round #304 (Div. 2) D. Soldier and Number Game
    queue+模拟 Codeforces Round #304 (Div. 2) C. Soldier and Cards
    贪心 Codeforces Round #304 (Div. 2) B. Soldier and Badges
  • 原文地址:https://www.cnblogs.com/hongzm/p/8134882.html
Copyright © 2020-2023  润新知