Log4j配置详解

近期看了下Log4j相关的配置,不得不感慨它的强大,集成过程很简单,就是把log4j.jar放到lib下即可,但配置过程稍显坎坷,主要在properties文件上,现贴出分享下,有什么问题可留言。

#展示log4j各种配置,私有部分见文件中注释,公有部分详细注释见文件最后

log4j.rootLogger=DEBUG,console,file,rolling,daily,DATABASE,MAIL



#控制台

log4j.appender.console=org.apache.log4j.ConsoleAppender

log4j.appender.console.layout=org.apache.log4j.PatternLayout

log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} - [%p] - [%l] %m%n



#普通文件

log4j.appender.file=org.apache.log4j.FileAppender

log4j.appender.file.layout=org.apache.log4j.PatternLayout

log4j.appender.file.Encoding=UTF-8

log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} - [%p] - [%l] %m%n

log4j.appender.file.File=../logs/file.log

log4j.appender.file.Append=true

log4j.appender.rolling.Threshold=DEBUG 



#轮转文件

log4j.appender.rolling=org.apache.log4j.RollingFileAppender

log4j.appender.rolling.layout=org.apache.log4j.PatternLayout

log4j.appender.rolling.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} - [%p] - [%l] %m%n

log4j.appender.rolling.Append=true

log4j.appender.rolling.Encoding=UTF-8

log4j.appender.rolling.Threshold=DEBUG

#表示最多保存10个日志文件

log4j.appender.rolling.MaxBackupIndex=10

log4j.appender.rolling.File=../logs/rolling.log

log4j.appender.rolling.MaxFileSize=10MB



#按日期区分

log4j.appender.daily=org.apache.log4j.DailyRollingFileAppender

log4j.appender.daily.layout=org.apache.log4j.PatternLayout

log4j.appender.daily.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} - [%p] - [%l] %m%n

log4j.appender.daily.Append=true

log4j.appender.daily.Encoding=UTF-8

log4j.appender.daily.Threshold=DEBUG

log4j.appender.daily.File=../logs/daily.log

# 表示重开文件的频率

# yyyy-MM,对应monthly(每月)

# yyyy-ww,对应weekly(每周)

# yyyy-MM-dd,对应daily(每天)

# yyyy-MM-dd-a,对应half-daily(每半天)

# yyyy-MM-dd-HH,对应hourly(每小时)

# yyyy-MM-dd-HH-mm,对应minutely(每分钟)

# 不用处理的文字放在单引号之间

log4j.appender.daily.DatePattern='.'yyyy-MM-dd'.log'



#写入数据库

log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender

log4j.appender.DATABASE.URL=jdbc:mysql://localhost:3306/test

log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver

log4j.appender.DATABASE.user=root

log4j.appender.DATABASE.password=root

log4j.appender.DATABASE.sql=INSERT INTO test (text) VALUES ('%d{yyyy-MM-dd HH:mm:ss} - [%p] - [%l] %m%n')

log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout

log4j.appender.DATABASE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} - [%p] - [%l] %m%n



#发送邮件

log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender

log4j.appender.MAIL.Threshold=ERROR

log4j.appender.MAIL.From=[email protected]

log4j.appender.MAIL.SMTPHost=smtp.sina.com

log4j.appender.MAIL.Subject=Log4J Message

log4j.appender.MAIL.To=[email protected]

#发件箱登陆用户名

log4j.appender.MAIL.SMTPUsername=******

#发件箱登陆密码

log4j.appender.MAIL.SMTPPassword=******

log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout

log4j.appender.MAIL.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} - [%p] - [%l] %m%n



# 定义输出级别和输出端(A1,A2,A3....)

# DEBUG: 指出细粒度信息事件对调试应用程序是非常有帮助的,就是输出debug的信息.

# INFO: 表明消息在粗粒度级别上突出强调应用程序的运行过程,就是输出提示信息.

# WARN: 表明会出现潜在错误的情形,就是显示警告信息.

# ERROR: 指出虽然发生错误事件,但仍然不影响系统的继续运行.就是显示错误信息.

# FATAL: 指出每个严重的错误事件将会导致应用程序的退出.

# ALL: 是最低等级的,用于打开所有日志记录.

# OFF: 是最高等级的,用于关闭所有日志记录.

# log4j建议只使用五个级别,级别顺序(由低到高): DEBUG < INFO < WARN < ERROR < FATAL

# windows下控制台效率比较差,输出的多了,非常影响服务器性能.

# 调试程序用debug或更低的优先级,这样开发的时候可以尽量输出,方便调试.

# 正式部署之后,可以提高日志的级别,只输出关键信息

log4j.rootLogger=DEBUG,*,*,*,*......



# 定义A1输出到控制器

# ConsoleAppender:写到控制台

# FileAppender:写到指定的文件中

# DailyRollingFileAppender:把Log信息输出到按照日期来区分的文件中,每天产生一个log文件

# RollingFileAppender:文件大小到达指定尺寸的时候产生一个新的文件

# WriterAppender:将日志信息以流格式发送到任意指定的地方(需要配合代码进行,不常用)

# JDBCAppender:输出日志文件到数据库

# SMTPAppender:发送到指定邮箱

log4j.appender.*=org.apache.log4j.ConsoleAppender



# 定义A1的布局模式

# HTMLLayout:以HTML表格形式布局

# PatternLayout:可以灵活地指定布局模式,就是可以自定义输出样式

# SimpleLayout:包含日志信息的级别和信息字符串

# TTCCLayout:包含日志产生的时间、线程、类别等等信息

log4j.appender.*.layout=org.apache.log4j.PatternLayout



# 定义A1的输出格式

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

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

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

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

# %n 输出一个回车换行符,Windows平台为"\r\n",Unix平台为"\n" 

# %d 输出日志时间的日期或时间,默认格式为ISO8601,也可以在其后指定格式

# %c 输出所属的类目,通常就是所在类的全名,如“iNotes.Default”; 

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

# %L 输出代码中的行数; 

# %F 输出代码中的文件名; 

log4j.appender.*.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} - [%p] - [%l] %m%n

 

你可能感兴趣的:(log4j)