Log4j

本文介绍了Log4j的日志分级管理,解释了为何要对日志进行分级,以及常用布局类型,如HTML布局、简单布局和匹配器布局。此外,文章还提及了Slf4j作为日志接口的作用,并提供了POM配置示例,以及如何创建和配置日志文件,最后展示了测试日志输出的效果和占位符的使用。
摘要由CSDN通过智能技术生成

概述

为了方便对日志信息的输出显示,对日志内容进行了分级管理。日志级别由高到低,共分6个级别:

  • fatal(致命的)
  • error(错误的)
  • warn(警告)
  • info(报告)
  • debug(调试)
  • trace(堆栈)

为什么要对日志进行分级

无论是将日志输出到控制台,还是文件,其输出都会降低程序的运行效率。但由于调试、运行维护的需要,客户的要求等原因,需要进行必要的日志输出。这时就必须要在代码中加入日志输出语句。
这些输出语句若在程序运行时全部执行,则势必会降低运行效率。例如,使用System.out.printIn()将信息输出到控制台,则所有的该输出语句均将执行。会大大降低程序的执行效率。而要使其不输出,唯一的办法就是将这些输出语句逐个全部删除。这是个费时费力的过程。
将日志信息进行分级管理,便可方便的控制信息输出内容及输出位置:哪些信息需要输出,哪些信息不需要输出,只需在一个日志输出控制文件中稍加修改即可。而代码中的输出语句不用做任何修改。
从这个角度来说,代码中的日志编写,其实就是写大量的输出语句。只不过,这些输出语句比较特殊,它们具有级别,在程序运行期间不一定被执行。它们的执行是由另一个控制文件控制。

常用布局类型

  • org.apache.log4j.HTMLLayout:网页布局,以HTML表格形式布局
  • org.apache.log4j.SimpleLayout:简单布局,包含日志信息的级别和信息字符串
  • org.apache.log4j.PatternLayout:匹配器布局,可以灵活地指定布局模式。其主要是通过设置 PatternLayout 的 ConversionPattern 属性值来控制具体输出格式的 。
    打印参数: Log4J 采用类似 C 语言中的 printf 函数的打印格式格式化日志信息
  • %m:输出代码中指定的消息
  • %p:输出优先级,即 DEBUG,INFO,WARN,ERROR,FATAL
  • %r:输出自应用启动到输出该log信息耗费的毫秒数
  • %c:输出所属的类目,通常就是所在类的全名
  • %t:输出产生该日志事件的线程名
  • %n:输出一个回车换行符,Windows平台为/r/n,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 )

Slf4j简介

slf4j 的全称是 Simple Loging Facade For Java,即它仅仅是一个为 Java 程序提供日志输出的统一接口,并不是一个具体的日志实现方案,就比如 JDBC 一样,只是一种规则而已。所以单独的 slf4j 是不能工作的,必须搭配其他具体的日志实现方案,比如 apache 的 org.apache.log4j.Logger,JDK 自带的 java.util.logging.Logger 以及 log4j 等。

POM

继续之前的项目,pom.xml 配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.funtl</groupId>
    <artifactId
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值