zoukankan      html  css  js  c++  java
  • Log4j配置文件详解及实例

        . 配置根 Logger ,其语法为: 
       log4j.rootLogger = [ level ] , appenderName, appenderName, …
      其中, level 是日志记录的优先级,分为 OFF  FATAL  ERROR  WARN  INFO  DEBUG  ALL 或者您定义的级别。 Log4j 建议只使用四个级别 ,优先级从高到低分别是 ERROR  WARN  INFO  DEBUG 。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了 INFO 级别,则应用程序中所有 DEBUG 级别的日志信息将不被打印出来 。 appenderName 就是指 B 日志信息输出到哪个地方。您可以同时指定多个输出目的地。


       )配置日志信息输出目的地 Appender ,其语法为: 
       log4j.appender.appenderName = fully.qualified.name.of.appender.class. 其中, Log4j 提供的 appender 有以下几种: 
              1.org.apache.log4j.ConsoleAppender (控制台), 
              2.org.apache.log4j.FileAppender (文件), 
              3.org.apache.log4j.DailyRollingFileAppender (每天产生一个日志文件), 
              4.org.apache.log4j.RollingFileAppender (文件大小到达指定尺寸的时候产生一个    新的文件) 
              5.org.apache.log4j.WriterAppender (将日志信息以流格式发送到任意指定的地方)


       3) . 配置日志信息的格式(布局),其语法为: 
       log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
      其中, Log4j 提供的 layout 有以 e 几种: 
              1.org.apache.log4j.HTMLLayout (以 HTML 表格形式布局), 
              2.org.apache.log4j.PatternLayout (可以灵活地指定布局模式), 
              3.org.apache.log4j.SimpleLayout (包含日志信息的级别和信息字符串), 
              4.org.apache.log4j.TTCCLayout (包含日志产生的时间、线程、类别等等信息) 
       Log4J 采用类似 C 语言中的 printf 函数的打印格式格式化日志信息,打印参数如下: %m 输出代码中指定的消息 

            %c 输出所属的类目,通常就是所在类的全名

            %d 输出日志时间点的日期或时间,默认格式为 ISO8601 ,也可以在其后指定格式,比如: %d{yyy MMM dd HH:mm:ss,SSS} ,输出类似: 2002 年 10 月 18 日 22 : 10 : 28 , 921 

       %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)

     %m 输出代码中指定的讯息,如 log(message) 中的 message

            %p 输出优先级,即 DEBUG , INFO , WARN , ERROR , FATAL
       %r 输出自应用启动到输出该 log 信息耗费的毫秒数 

       %t 输出产生该日志事件的线程名(方法名)

     %n 输出一个回车换行符, Windows 平台为 “rn” , Unix 平台为 “n”

    eg:

    log4j.appender.appender1.layout.ConversionPattern =%r [%t] [%p] - %c -%l -%m%n 输出结果:

    控制台代码

          0 [main] [DEBUG] - com.coderdream.log4j.HelloLog4j-com.coderdream.log4j.HelloLog4j.main(HelloLog4j.java:16 ) -This is debug message.

          31 [main] [INFO] - com.coderdream.log4j.HelloLog4j -com.coderdream.log4j.HelloLog4j.main(HelloLog4j.java:18 ) -This is info message.

          31 [main] [ERROR] - com.coderdream.log4j.HelloLog4j-com.coderdream.log4j.HelloLog4j.main(HelloLog4j.java:20 ) -This is error message.

    log4j.rootLogger=DEBUG, Console, infoFile, File  
    #Console
    log4j.appender.Console=org.apache.log4j.ConsoleAppender
    log4j.appender.Console.layout=org.apache.log4j.PatternLayout
    log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
    log4j.logger.java.sql.ResultSet=INFO
    log4j.logger.org.apache=INFO
    log4j.logger.java.sql.Connection=DEBUG
    log4j.logger.java.sql.Statement=DEBUG
    log4j.logger.java.sql.PreparedStatement=DEBUG
    #infoFile
    log4j.appender.infoFile=org.apache.log4j.RollingFileAppender
    log4j.appender.infoFile.layout=org.apache.log4j.PatternLayout
    log4j.appender.infoFile.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
    log4j.appender.infoFile.MaxFileSize=10MB
    log4j.appender.infoFile.MaxBackupIndex=10
    log4j.appender.infoFile.File=/var/log/debug.log  
    #File
    #配置log4j每天产生日志,并且当天日志大于10M时自动生成另一个文件
    log4j.appender.File=org.apache.log4j.RollingFileAppender
    #可以灵活地指定布局模式
    log4j.appender.File.layout=org.apache.log4j.PatternLayout
    #自定义输出日志格式
    log4j.appender.File.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
    #当文件大小超过10MB时,默认将原来的文件名改为auto.log.1
    log4j.appender.File.MaxFileSize=10MB
    #保留10个备份文件
    log4j.appender.File.MaxBackupIndex=10
    #输出日志文件路径,winodows下回存放在和工作空间同级目录下的/var/log文件夹中,linux下会直接存放在/var/log文件夹下
    log4j.appender.File.File=/var/log/info.log
    #Threshold:入口,临界值。只有INFO级别以及以上级别的日志才会输出到日志中
    log4j.appender.File.Threshold=INFO  
    #如果配置下面的,则每天会产生一个日志文件
    #log4j.appender.File=org.apache.log4j.DailyRollingFileAppender
    #今天是2016-12-15,到明天这个文件将更名为debug.log.2016-12-16。
    #log4j.appender.File.DatePattern='.'yyyy-MM-dd
    #每天:’.’YYYY-MM-dd(默认)
    #每星期:’.’YYYY-ww
    # 每月:’.’YYYY-MM
    #每隔半天:’.’YYYY-MM-dd-a
    #每小时:’.’YYYY-MM-dd-HH
    #每分钟:’.’YYYY-MM-dd-HH-mm
  • 相关阅读:
    阿里云 k8s 部署 Spring Cloud Alibaba 微服务实践 (四) 自动化部署
    阿里云 k8s 部署 Spring Cloud Alibaba 微服务实践 (三) 服务观测
    阿里云 k8s 部署 Spring Cloud Alibaba 微服务实践 (二) 部署微服务程序
    阿里云 k8s 部署 Spring Cloud Alibaba 微服务实践 (一) 部署 Nacos
    C++知识点
    libmkl 学习笔记
    基于tesseract-OCR进行中文识别
    poco编译与运行
    Linux下的I/O复用与epoll详解(转载)
    高并发网络编程之epoll详解(转载)
  • 原文地址:https://www.cnblogs.com/java-spring/p/7791775.html
Copyright © 2011-2022 走看看