log4j.properties日志文件配置详解

版权声明:未经本人同意,不得转发 https://blog.csdn.net/dgh112233/article/details/82344559

1、配置根Logger,第一个参数代表日志信息输出等级,共有5个等级:FATAL、ERROR、WARN、INFO、DEBUG,依次往后的等级输出的信息越详细。后面是日志信息的输出地址,可以是多个,就是讲信息同时输出到多个位置,名字自定义,此处举例只有两个,bbb和ccc。                                                

log4j.rootLogger=INFO,aaa,bbb

日志输出目的地

 2、bbb和ccc这两个地址到底是什么呢?输出到哪呢?YYYYY和RRRRR就是你的位置,                                    

位置有几种:                        

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

org.apache.log4j.FileAppender (日志文件)    

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

org.apache.log4j.RollingFileAppender (日志信息写满文件一定大小时产生新的日志文件)

org.apache.log4j.WriterAppender (将日志文件以流格式发送到任意指定位置)

log4j.appender.aaa=YYYYY;
log4j.appender.bbb=RRRRR;

 3、如果位置是org.apache.log4j.ConsoleAppender,那好理解,就是输出到控制台显示出来;ConsoleAppender有一些配置选项;

Target:以哪种方式输出到控制台,对java来说就是System.out和System.err  

threshold:日志消息输出的最低等级(FATAL、ERROR这些) 

immediateFlush:默认值为true,所有日志消息立即输出

log4j.appender.aaa=org.apache.log4j.ConsoleAppender
log4j.appender.aaa.Target=System.out
log4j.appender.aaa.Threshold=INFO
log4j.appender.aaa.ImmediateFlush=true

       如果是org.apache.log4j.FileAppender,那么只是表明要将日志信息输出到日志文件中去,但是还没有指定要输出到哪个文件中去,比如:log4j.appender.aaa=org.apache.log4j.FileAppender,还需要:log4j.appender.aaa.File=文件的路径。                 FileAppender有一些配置选项:          

immediateFlush:默认值为true,所有日志消息立即输出

threshold:日志消息输出的最低等级(FATAL、ERROR这些)

File:指定日志文件(路径+文件名)

Append:默认为true,将日志消息添加到日志文件中,false代表将日志消息覆盖到日志文件中

       如果是 org.apache.log4j.RollingFileAppender,就是用多个日志文件来存储日志信息,而且每个日志文件的大小是一定的,一些配置选项如下:

immediateFlush:默认值为true,所有日志消息立即输出

threshold:日志消息输出的最低等级(FATAL、ERROR这些)

File:指定日志文件(路径+文件名)

Append:默认为true,将日志消息添加到日志文件中,false代表将日志消息覆盖到日志文件中 

MaxFileSize:是每个日志文件的最大存储空间,如果日志信息超过了日志文件的这个最大存储值,那么就会将日志继续存放到新的日志文件中

MaxBackupIndex:代表用于存放日志的日志文件总数,MaxFileSize*    MaxBackupIndex=日志总大小   

       如果是 org.apache.log4j.DailyRollingFileAppender,就是用多个日志文件来存储日志信息,而且每个日志文件的大小是一定的,一些配置选项如下:

immediateFlush:默认值为true,所有日志消息立即输出 

threshold:日志消息输出的最低等级(FATAL、ERROR这些)

File:指定日志文件(路径+文件名)

Append:默认为true,将日志消息添加到日志文件中,false代表将日志消息覆盖到日志文件中  

DatePatterm:日志滚动周期,如每周、每天、没小时等,记录多久的日志之后,就会新生产一个日志文件,继续记录。

'.' yyyy-MM

每月
'.' yyyy-MM-dd 每天
'.' yyyy-MM-dd-a 每天2次
'.' yyyy-MM-dd-HH 每小时
'.' yyyy-MM-dd-HH-mm 每分钟
'.' yyyy-ww 每周

日志输出格式 

上面介绍了如何配置日志输出目的地,接下来介绍日志以什么样的格式(布局)输出。

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

org.apache.log4j.PatternLayout(可自定义布局)

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

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

如果是org.apache.log4j.PatternLayout布局,那就要自己定义输出格式了,如何定义呢?

log4j.appender.aaa.layout=org.apache.log4j.PatternLayout
log4j.appender.ROOT_Appender.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss,SSS} [%5p] (%F\:%L) - %m%n

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

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

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

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

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

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

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

%l     输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。

      

                                                                                                                      

猜你喜欢

转载自blog.csdn.net/dgh112233/article/details/82344559
今日推荐