近期看了下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=7610aotian@sina.com log4j.appender.MAIL.SMTPHost=smtp.sina.com log4j.appender.MAIL.Subject=Log4J Message log4j.appender.MAIL.To=7610aotian@sina.com #发件箱登陆用户名 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平台为" ",Unix平台为" " # %d 输出日志时间的日期或时间,默认格式为ISO8601,也可以在其后指定格式 # %c 输出所属的类目,通常就是所在类的全名,如“iNotes.Default”; # %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数 # %L 输出代码中的行数; # %F 输出代码中的文件名; log4j.appender.*.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} - [%p] - [%l] %m%n