首页 > 代码库 > Log4j配置详解

Log4j配置详解

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

#展示log4j各种配置,私有部分见文件中注释,公有部分详细注释见文件最后log4j.rootLogger=DEBUG,console,file,rolling,daily,DATABASE,MAIL#控制台log4j.appender.console=org.apache.log4j.ConsoleAppenderlog4j.appender.console.layout=org.apache.log4j.PatternLayoutlog4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} - [%p] - [%l] %m%n#普通文件log4j.appender.file=org.apache.log4j.FileAppenderlog4j.appender.file.layout=org.apache.log4j.PatternLayoutlog4j.appender.file.Encoding=UTF-8log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} - [%p] - [%l] %m%nlog4j.appender.file.File=../logs/file.loglog4j.appender.file.Append=truelog4j.appender.rolling.Threshold=DEBUG #轮转文件log4j.appender.rolling=org.apache.log4j.RollingFileAppenderlog4j.appender.rolling.layout=org.apache.log4j.PatternLayoutlog4j.appender.rolling.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} - [%p] - [%l] %m%nlog4j.appender.rolling.Append=truelog4j.appender.rolling.Encoding=UTF-8log4j.appender.rolling.Threshold=DEBUG#表示最多保存10个日志文件log4j.appender.rolling.MaxBackupIndex=10log4j.appender.rolling.File=../logs/rolling.loglog4j.appender.rolling.MaxFileSize=10MB#按日期区分log4j.appender.daily=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.daily.layout=org.apache.log4j.PatternLayoutlog4j.appender.daily.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} - [%p] - [%l] %m%nlog4j.appender.daily.Append=truelog4j.appender.daily.Encoding=UTF-8log4j.appender.daily.Threshold=DEBUGlog4j.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.JDBCAppenderlog4j.appender.DATABASE.URL=jdbc:mysql://localhost:3306/testlog4j.appender.DATABASE.driver=com.mysql.jdbc.Driverlog4j.appender.DATABASE.user=rootlog4j.appender.DATABASE.password=rootlog4j.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.PatternLayoutlog4j.appender.DATABASE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} - [%p] - [%l] %m%n#发送邮件log4j.appender.MAIL=org.apache.log4j.net.SMTPAppenderlog4j.appender.MAIL.Threshold=ERRORlog4j.appender.MAIL.From=7610aotian@sina.comlog4j.appender.MAIL.SMTPHost=smtp.sina.comlog4j.appender.MAIL.Subject=Log4J Messagelog4j.appender.MAIL.To=7610aotian@sina.com#发件箱登陆用户名log4j.appender.MAIL.SMTPUsername=******#发件箱登陆密码log4j.appender.MAIL.SMTPPassword=******log4j.appender.MAIL.layout=org.apache.log4j.PatternLayoutlog4j.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配置详解