• 20Log4j


    1. Log4j概述

    Log4j即log for java,是专门用来在java中记日志的工具,简单易用,使用便捷,在java开发中应用非常广泛,基本上是目前java记日志的事实上的通用工具。     

           Log4j中的日志级别

                         可以在使用log4j输出日志时,选择日志的不同级别,建议根据推荐选择合适的级别输出日志,方便统一管理。

                         可以在log4j的配置文件中配置输出哪个级别的日志,则高于或等于这个级别的日志会被输出,低于这个级别的日志会被忽略。

                  c. 日志数据的优先级   Threshold

        所谓日志的优先级就是日志的收集级别。指定收集级别之后,log4j会将当前级别及其以上级别的内容同时收集。  

                         off 最高等级, 用于关闭所有日志记录。

                         fatal 指出每个严重的错误事件将会导致应用程序的退出。

                         error 指出虽然发生错误事件, 但仍然不影响系统的继续运行。

                         warn 表明会出现潜在的错误情形。     警告信息

                         info 一般和在粗粒度级别上, 强调应用程序的运行全程。相当于普通信息

                         debug 一般用于细粒度级别上, 对调试应用程序非常有帮助。

                         all 最低等级, 用于打开所有日志记录

           2. Log4j的使用

                  a. 下载log4j的jar包

                         log4j并不是j2se的一部分,需要使用时,需要导入第三方开发包。

                                http://jakarta.apache.org/log4j

                  b. 在项目中导入log4j相关的jar 放置在自己的web项目中

                  c. 在项目的类加载目录下放置一个log4j.properties配置文件

                         在该文件中进行log4j相关的配置,通常不会真的自己配置,而是从模板配置中拷贝。

    #顶部的管道可以删除,但是如果管道存在,则必须要添加对应的配置信息,选择输出的目的地
    #下面这行代码的info代表的是我们整个配置文件的输出级别是info及其以上的,如果低于info则不输出
    log4j.rootLogger = info,stdout,D,E

    #org.apache.log4j.ConsoleAppender 指的是向控制台输出
    log4j.appender.stdout = org.apache.log4j.ConsoleAppender
    #以system.out的输出方式向控制台输出
    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%m%n

    log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.D.File = E://logs/log.log
    log4j.appender.D.Append = true
    log4j.appender.D.Threshold = DEBUG
    log4j.appender.D.layout = org.apache.log4j.PatternLayout
    log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n

    log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.E.File =E://logs/error.log
    log4j.appender.E.Append = true
    log4j.appender.E.Threshold = ERROR
    log4j.appender.E.layout = org.apache.log4j.PatternLayout
    log4j.appender.E.layout.ConversionPattern =%-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n

                  d. 数据输出的目的地   appender

                         所谓日志输出的目的地,指的是日志内容向何处输出,输出方向可以console,也可以说一个文件。

                         org. apache. log4j. ConsoleAppender(控制台) ,

                         org. apache. log4j. FileAppender(文件) ,

                         org. apache. log4j. DailyRollingFileAppender(每天产生一个日 志文件) ,

                         org. apache. log4j. RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件) ,

                         org. apache. log4j. WriterAppender(将日 志信息以流格式发送到任意指定的地方)

                  e. 数据输出的格式

                         所谓日志输出的格式,就是日志以何种形式向目的地输出,这些形式可以是HTML结构,也可以说自定义结构。

                         org. apache. log4j. HTMLLayout(以HTML表格形式布局) ,

                         org. apache. log4j. PatternLayout(可以灵活地指定布局模式) ,

                         org. apache. log4j. SimpleLayout(包含日 志信息的级别和信息字符串) ,

                         org. apache. log4j. TTCCLayout(包含日 志产生的时间、 线程、 类别等等信息)

                  f. pattern配置

                         %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)

                         %m  输出的日志信息内容

           3. 创建日志对象

                              

                            获取日志记录器

                                通过Logger类提供静态方法可以通过名字获取一个日志记录器,每个日志记录器都要有一个名字,如果该名字的日志记录器不存在则创建。

                                       public static Logger getLogger(String name)

                                       public static Logger getLogger(Class clz)

                  日志信息需要通过Logger对象输出。

                         Logger  logger = Logger.getLogger(.class)

              ii. 配置log4j

    可以通过api配置,如果不配置,默认会在类加载目录下寻找log4j.properties作为配置。

           4. 代码实现:

            

          package cn.tedu.log4j;           
                  import org.apache.log4j.Logger;
    
                  public class Demo1 {
    
                          public static Logger logger = Logger.getLogger(Demo1.class);
    
                          public static void main(String[] args) {
    
                                  logger.fatal("这是一个致命的日志");
    
                                  logger.error("这是一个错误的日志");
    
                                  logger.warn("这是一个警告日志");
    
                                  logger.info("这是一个普通日志");
    
                                  logger.debug("这是一个调试日志");
    
                          }
    
                 
    
                  }
  • 相关阅读:
    钉钉消息类型与数据格式
    钉钉查看员工UserID
    真厉害!1 秒写入 10 万条消息,Kafka 写得这么快,都是因为这些优化!
    我 35 岁,可以转行当程序员吗?
    git 查看某个文件的历史修改版本
    牛B程序员在“创建索引”时都会注意啥?
    php 自定义机器人接入
    为什么ping不通网站 但是却可以访问该网站?
    使用php脚本查看已开启的扩展
    VSTS unable to load the service index for source 401
  • 原文地址:https://www.cnblogs.com/xuwangqi/p/11389464.html
Copyright © 2020-2023  润新知