• 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=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
  • 相关阅读:
    mybatis的mapper特殊字符转移以及动态SQL条件查询
    MySQL查询结果集字符串操作之多行合并与单行分割
    MySQL查询之内连接,外连接查询场景的区别与不同
    SpringBoot异步使用@Async原理及线程池配置
    SpringBoot 属性配置文件数据注入配置和yml与properties区别
    MySQL实战45讲第33讲
    Beta冲刺第1次
    Beta冲刺第5次
    Beta冲刺第4次
    Beta冲刺第3次
  • 原文地址:https://www.cnblogs.com/aotian/p/4107040.html
Copyright © 2020-2023  润新知