• springmvc 项目完整示例06 日志–log4j 参数详细解析 log4j如何配置


    Log4j由三个重要的组件构成:

    日志信息的优先级

    日志信息的输出目的地

    日志信息的输出格式

    日志信息的优先级从高到低有ERROR、WARN、 INFO、DEBUG,分别用来指定这条日志信息的重要程度;

    日志信息的输出目的地指定了日志将打印到控制台还是文件中;

    而输出格式则控制了日志信息的显 示内容。

    Log4j支持两种配置文件格式

    一种是XML格式的文件,一种是Java特性文件(键=值)。

    下面我们介绍使用Java特性文件做为配置文件的方法:

    1.配置根Logger,其语法为:

    log4j.rootLogger = [ level ] , appenderName, appenderName, …

    比如我们的就是

    log4j.rootLogger = DEBUG,stdout,D

    appenderName就是一个名字哈,你可以定义你自己的,不是说就要这样子的,不过要跟下面使用的时候对应上就好了

    其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。

    Log4j建议只使用四个级别,优 先级从高到低分别是ERROR、WARN、INFO、DEBUG。

    通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。

    比如在这里定 义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。 

    appenderName就是指日志信息输出到哪个地方。您可以同时指定多个输出目的地。

    2.配置日志信息输出目的地Appender,其语法为:

    log4j.appender.appenderName = fully.qualified.name.of.appender.class  
    log4j.appender.appenderName.option1 = value1  
    …  
    log4j.appender.appenderName.option = valueN

    其中,Log4j提供的appender有以下几种:

    org.apache.log4j.ConsoleAppender(控制台),  
    org.apache.log4j.FileAppender(文件),  
    org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),  
    org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),  
    org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

    (1)ConsoleAppender选项:

    Threshold=WARN:指定日志信息的最低输出级别,默认为DEBUG。

    ImmediateFlush=true:表示所有消息都会被立即输出,设为false则不输出,默认值是true。

    Target=System.err:默认值是System.out。

    (2)FileAppender选项:

    Threshold=WARN:指定日志信息的最低输出级别,默认为DEBUG。

    ImmediateFlush=true:表示所有消息都会被立即输出,设为false则不输出,默认值是true。

    Append=false:true表示消息增加到指定文件中,false则将消息覆盖指定的文件内容,默认值是true。

    File=D:/logs/logging.log4j:指定消息输出到logging.log4j文件中。

    (3)DailyRollingFileAppender选项:

    Threshold=WARN:指定日志信息的最低输出级别,默认为DEBUG。

    ImmediateFlush=true:表示所有消息都会被立即输出,设为false则不输出,默认值是true。

    Append=false:true表示消息增加到指定文件中,false则将消息覆盖指定的文件内容,默认值是true。

    File=D:/logs/logging.log4j:指定当前消息输出到logging.log4j文件中。

    DatePattern='.'yyyy-MM:每月滚动一次日志文件,即每月产生一个新的日志文件。当前月的日志文件名为logging.log4j,前一个月的日志文件名为logging.log4j.yyyy-MM。

    另外,也可以指定按周、天、时、分等来滚动日志文件,对应的格式如下:

    1)'.'yyyy-MM:每月

    2)'.'yyyy-ww:每周

    3)'.'yyyy-MM-dd:每天

    4)'.'yyyy-MM-dd-a:每天两次

    5)'.'yyyy-MM-dd-HH:每小时

    6)'.'yyyy-MM-dd-HH-mm:每分钟

    (4)RollingFileAppender选项:

    Threshold=WARN:指定日志信息的最低输出级别,默认为DEBUG。

    ImmediateFlush=true:表示所有消息都会被立即输出,设为false则不输出,默认值是true。

    Append=false:true表示消息增加到指定文件中,false则将消息覆盖指定的文件内容,默认值是true。

    File=D:/logs/logging.log4j:指定消息输出到logging.log4j文件中。

    MaxFileSize=100KB:后缀可以是KB, MB 或者GB。在日志文件到达该大小时,将会自动滚动,即将原来的内容移到logging.log4j.1文件中。

    MaxBackupIndex=2:指定可以产生的滚动文件的最大数,例如,设为2则可以产生logging.log4j.1,logging.log4j.2两个滚动文件和一个logging.log4j文件。

    我们的

    log4j.appender.stdout = org.apache.log4j.ConsoleAppender

    就是指定到控制台的 =左边的stdout就是我们定义的名字,后面就是类型嘛

    说白了就是

    log4j.appender.appenderName=appender的类型

    这样子就指定了输入的目的地了

    3.配置日志信息的格式(布局),其语法为:

    log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class  
    log4j.appender.appenderName.layout.option1 = value1  
    …  
    log4j.appender.appenderName.layout.option = valueN

    其中,Log4j提供的layout有以e几种:

    org.apache.log4j.HTMLLayout(以HTML表格形式布局),  
    org.apache.log4j.PatternLayout(可以灵活地指定布局模式),  
    org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),  
    org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

    (1)HTMLLayout选项:

    LocationInfo=true:输出java文件名称和行号,默认值是false。

    Title=My Logging: 默认值是Log4J Log Messages。

    (2)PatternLayout选项:

    ConversionPattern=%m%n:设定以怎样的格式显示消息。

    Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,打印参数如下: %m 输出代码中指定的消息

    %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL  
    %r 输出自应用启动到输出该log信息耗费的毫秒数  
    %c 输出所属的类目,通常就是所在类的全名  
    %t 输出产生该日志事件的线程名  
    %n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”  
    %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921  
    %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)

     

     

    说到这个地方,来点总结性的

    我们以我们的例子说

    ### 输出到控制台 ###

    log4j.appender.stdout = org.apache.log4j.ConsoleAppender

    log4j.appender.stdout.Target = System.out

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

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

    其实就相当于你定义了一个方式,这个方式你自己要有一个名字

    他就是最开始

    log4j.rootLogger = DEBUG,stdout,D 这个地方的   ,  第一个逗号后面的这些个名字,他就是appenderName

    你需要,指定他的输出目的

    也即是

    log4j.appender.stdout = 目的地

    然后是剩下的一些参数,配置一下

    就这样子而已

    具体的参数,以及参数的值,查查文档,百度一下就出来了

    再啰嗦一点几个参数

    比如说你想某种方式只是输出某种级别,比如说你想只是把error输出到文件

    那么你可以指定

    log4j.appender.D.Threshold = ERROR ## 只输出ERROR级别以上的日志!!!

    这个Threshold  就控制了这个

    #附:Log4j比较全面的配置

     

    #Log4j配置文件实现了输出到控制台、文件、回滚文件、发送日志邮件、输出到数据库日志表、自定义标签等全套功能。

    log4j.rootLogger=DEBUG,console,dailyFile,im

    log4j.additivity.org.apache=true

    # 控制台(console)

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

    log4j.appender.console.Threshold=DEBUG

    log4j.appender.console.ImmediateFlush=true

    log4j.appender.console.Target=System.err

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

    log4j.appender.console.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l: %m %x %n

     

    # 日志文件(logFile)

    log4j.appender.logFile=org.apache.log4j.FileAppender

    log4j.appender.logFile.Threshold=DEBUG

    log4j.appender.logFile.ImmediateFlush=true

    log4j.appender.logFile.Append=true

    log4j.appender.logFile.File=D:/logs/log.log4j

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

    log4j.appender.logFile.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l: %m %x %n

    # 回滚文件(rollingFile)

    log4j.appender.rollingFile=org.apache.log4j.RollingFileAppender

    log4j.appender.rollingFile.Threshold=DEBUG

    log4j.appender.rollingFile.ImmediateFlush=true

    log4j.appender.rollingFile.Append=true

    log4j.appender.rollingFile.File=D:/logs/log.log4j

    log4j.appender.rollingFile.MaxFileSize=200KB

    log4j.appender.rollingFile.MaxBackupIndex=50

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

    log4j.appender.rollingFile.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l: %m %x %n

    # 定期回滚日志文件(dailyFile)

    log4j.appender.dailyFile=org.apache.log4j.DailyRollingFileAppender

    log4j.appender.dailyFile.Threshold=DEBUG

    log4j.appender.dailyFile.ImmediateFlush=true

    log4j.appender.dailyFile.Append=true

    log4j.appender.dailyFile.File=D:/logs/log.log4j

    log4j.appender.dailyFile.DatePattern='.'yyyy-MM-dd

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

    log4j.appender.dailyFile.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l: %m %x %n

    # 应用于socket

    log4j.appender.socket=org.apache.log4j.RollingFileAppender

    log4j.appender.socket.RemoteHost=localhost

    log4j.appender.socket.Port=5001

    log4j.appender.socket.LocationInfo=true

    # Set up for Log Factor 5

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

    log4j.appender.socket.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l: %m %x %n

    # Log Factor 5 Appender

    log4j.appender.LF5_APPENDER=org.apache.log4j.lf5.LF5Appender

    log4j.appender.LF5_APPENDER.MaxNumberOfRecords=2000

    # 发送日志到指定邮件

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

    log4j.appender.mail.Threshold=FATAL

    log4j.appender.mail.BufferSize=10

    log4j.appender.mail.From = xxx@mail.com

    log4j.appender.mail.SMTPHost=mail.com

    log4j.appender.mail.Subject=Log4J Message

    log4j.appender.mail.To= xxx@mail.com

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

    log4j.appender.mail.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l: %m %x %n

    # 应用于数据库

    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=

    log4j.appender.database.sql=INSERT INTO LOG4J (Message) VALUES('=[%-5p] %d(%r) --> [%t] %l: %m %x %n')

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

    log4j.appender.database.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l: %m %x %n

     

    # 自定义Appender

    log4j.appender.im = net.cybercorlin.util.logger.appender.IMAppender

    log4j.appender.im.host = mail.cybercorlin.net

    log4j.appender.im.username = username

    log4j.appender.im.password = password

    log4j.appender.im.recipient = corlin@cybercorlin.net

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

    log4j.appender.im.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l: %m %x %n

    spring原理 实践解析-简单的helloworld

    spring原理案例-基本项目搭建 01 spring framework 下载 官网下载spring jar包

    spring原理案例-基本项目搭建 02 spring jar包详解 spring jar包的用途

    spring原理案例-基本项目搭建 03 创建工程运行测试 spring ioc原理实例示例

    springmvc整合mybatis完整项目示例

    springmvc 项目完整示例01 需求与数据库表设计 简单的springmvc应用实例 web项目

    springmvc 项目完整示例02 项目创建-eclipse创建动态web项目 配置文件 junit单元测试

    springmvc 项目完整示例03 小结

    springmvc 项目完整示例04 整合mybatis mybatis所需要的jar包 mybatis配置文件 sql语句 mybatis应用

    springmvc 项目完整示例05  日志 --log4j整合 配置 log4j属性设置 log4j 配置文件 log4j应用

    springmvc 项目完整示例06 日志–log4j 参数详细解析 log4j如何配置

    springmvc 项目完整示例07 设置配置整合springmvc springmvc所需jar包springmvc web.xml文件配置

    springmvc 项目完整示例08 前台页面以及知识点总结

    maven项目整合springmvc整合mybatis

    eclipse 创建maven 项目 动态web工程完整示例

    eclipse 创建maven 项目 动态web工程完整示例 maven 整合springmvc整合

  • 相关阅读:
    Python基础之内存管理与垃圾回收机制
    Git常用命令
    Git分支操作
    码云配置SSH公钥
    Git基本操作
    Git基本理论
    版本控制
    Python基础之Python语法
    成为一名JAVA高级工程师你需要学什么【转】
    一个java高级工程师的进阶之路【转】
  • 原文地址:https://www.cnblogs.com/noteless/p/5213502.html
Copyright © 2020-2023  润新知