学习笔记(06-01):轻松搞定Spring全家桶(初识篇)-Spring Framework-Log4J:Log4J配置文件详解

Log4J的配置文件是用来设置日志输出的级别、存放和布局的,它可以是key=value格式的设置或xml格式的设置信息。通过配置创建出Log4J的运行环境。
案例中的配置文件:/AOPProjectByAspectJAnnotation/resource/log4j.properties

LOG_DIR=H:\\StudyLogs
log4j.rootLogger=DEBUG, Console, FileInfo,FileError

log4j.appender.Console = org.apache.log4j.ConsoleAppender
log4j.appender.Console.Threshold = DEBUG
log4j.appender.Console.ImmediateFlush = true
log4j.appender.Console.Target = System.out
log4j.appender.Console.layout = org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l:%m%n


log4j.appender.FileInfo = org.apache.log4j.DailyRollingFileAppender
log4j.appender.FileInfo.Threshold = INFO 
log4j.appender.FileInfo.ImmediateFlush = true
log4j.appender.FileInfo.Append = true
log4j.appender.FileInfo.DatePattern = '_'yyyy-MM-dd'.log'
log4j.appender.FileInfo.encoding = UTF-8
log4j.appender.FileInfo.File = ${LOG_DIR}/info
log4j.appender.FileInfo.layout = org.apache.log4j.PatternLayout
log4j.appender.FileInfo.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %-5p ]  %m%n

log4j.appender.FileError = org.apache.log4j.DailyRollingFileAppender
log4j.appender.FileError.Threshold = ERROR 
log4j.appender.FileError.ImmediateFlush = true
log4j.appender.FileError.Append = true
log4j.appender.FileError.DatePattern = '_'yyyy-MM-dd'.log'
log4j.appender.FileError.encoding = UTF-8
log4j.appender.FileError.File = ${LOG_DIR}/error
log4j.appender.FileError.layout = org.apache.log4j.PatternLayout
log4j.appender.FileError.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %-5p ]  %m%n

配置详解:
一、第一行中:LOG_DIR=H:\StudyLogs
    设置一个环境变量,含义是log日志文件的存放目录,下边配置会用到
二、第二行:log4j.rootLogger=DEBUG, Console, FileInfo,FileError
#语法格式:

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

#含义:配置根Logger,第一个参数是级别,后面的是一些名字(可以随便起,有含义的好懂),接下来需要对这些名字进行配置内容。
三、后面三段是对这几个名字进行设置:这几个名字代表着日志信息输出目的地
#日志信息输出目的地Appender,其语法语法为:

log4j.appender.appenderName = fully.qualified.name.of.appender.class
log4j.appender.appenderName.option1 = value1

log4j.appender.appenderName.option = valueN

  1. 第二段第一句:log4j.appender.Console = org.apache.log4j.ConsoleAppender表示向控制台输出。其中Log4j提供的appender有以下几种输出位置:
    》org.apache.log4j.ConsoleAppender(控制台),
    》org.apache.log4j.FileAppender(文件),
    》org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
    》org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
    》org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
  2. 第二句:log4j.appender.Console.Threshold = DEBUG表示往这个位置输出的级别,不能低于根Logger设置的级别,否则不会输出
  3. 向控制台输出时:
log4j.appender.Console.ImmediateFlush = true
log4j.appender.Console.Target = System.out

>>>ImmediateFlush的意思:是否立即更新,true
>>>Target:输出使用的方式。这里设置为了System.out
4. 向文件输出时:

log4j.appender.FileError = org.apache.log4j.DailyRollingFileAppender
log4j.appender.FileError.Threshold = ERROR 
log4j.appender.FileInfo.ImmediateFlush = true
log4j.appender.FileInfo.Append = true
log4j.appender.FileInfo.DatePattern = '_'yyyy-MM-dd'.log'
log4j.appender.FileInfo.encoding = UTF-8
log4j.appender.FileInfo.File = ${LOG_DIR}/info

这里设置为了按日期输出文件,每天输出一个。
Append代表写入的方式,true的意思是直接在后面添入
DatePattern:文件每天保存的时候文件名后接的日期的格式,文件名的格式
encoding:写入文件的编码方式
File:这里使用了环境变量相对路径法定义了文件的存放位置和名称,用到了前面的环境变量。也可以直接使用绝对路径。第一次生成的文件没有DatePattern设定的后缀,之后的文件才会有这个后缀
6. 配置日志信息的格式(布局):

log4j.appender.Console.layout = org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l:%m%n

Log4j提供的layout有以下几种:
》org.apache.log4j.HTMLLayout(以HTML表格形式布局),
》org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
》org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
》org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
一般都使用自定义org.apache.log4j.PatternLayout:这个时候需要自己设置打印参数: Log4J采用的打印格式化日志信息,如下:
  %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
  %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy-MMM-dd HH:mm:ss , SSS},意思是:年-月-日 时:分:秒,毫秒
  %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java: 10 )
   %m 输出代码中指定的消息
  %r 输出自应用启动到输出该log信息耗费的毫秒数
  %c 输出所属的类目,通常就是所在类的全名
  %t 输出产生该日志事件的线程名
  %n 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”

如果有遗漏或者错误欢迎补充或者我日后知道了也会补充。。。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值