Log4j 的基本使用,快如掌握Log4j

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

日志信息的优先级
志信息的输出目的地
志信息的输出格式

日志信息的优先级从高到低有 ERROR、WARN、 INFO、DEBUG,分别用来指定这条日志信息的重要程度;日志信息的输出目的地指定了日志将打印到控制台还是文件中;而输出格式则控制了日志信息的显 示内容。

以下是 log4j.properties 文件的一个 appender X 的

指定Debug级别的输出,并声明使用名为 X、Y、Z 三个Appender。

log4j.rootLogger = DEBUG, X, Y, Z

log4j.appender.X 的各项设置

log4j.appender.Y 的各项设置

log4j.appender.Z 的各项设置

  1. 配置根 Logger

    log4j.rootLogger = [ level ] , , , …

在配置文件的第一行即指明了日志输出的优先级级别。常见的优先级级别有:
优先级级别 说明

  • ERROR 输出ERROR(及以上级别)的日志信息
  • INFO 输出INFO(及以上级别)的日志信息
  • WARN 输出INFO(及以上级别)的日志信息
  • DEBUG 输出INFO(及以上级别)的日志信息 ALL 输出所有级别的日志信息
  • Appender 的输出目的地

常见的输出目的地有两个:

org.apache.log4j.ConsoleAppender(控制台)
org.apache.log4j.FileAppender(文件)

设置日志信息的输出目的地 Appender 语法为:

log4j.appender.<appenderName> = org.apache.log4j.ConsoleAppender
log4j.appender.<appenderName>.option1 = value1
... ...
log4j.appender.<appenderName>.optionsN = valueN

如果Appender输出目的地是文件,那么至少还需要为 Appender 多配置一个File属性。

log4j.appender..File = 一个文件的路径名

  1. Appender 的输出布局和输出格式

常见的输出布局有:

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

设置日志信息的格式的 Appender 语法为:

log4j.appender.<Appender>.layout = org.apache.log4j.PatternLayout
log4j.appender.<Appender>.layout.option1 = value1
...
log4j.appender.<Appender>.layout.optionN = valueN

常见的输出格式中最常见也最灵活的是:org.apache.log4j.PatternLayout,使用它需要需要配置其 ConversionPattern 属性,以进一步控制其日志格式。

log4j.appender.<Appender>.layout.ConversionPattern = ...

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

  • %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
  • %r 输出自应用启动到输出该log信息耗费的毫秒数
  • %c 输出所属的类目,通常就是所在类的全名 %t 输出产生该日志事件的线程名
  • %n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
  • %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式
  • %p 输出优先级,即 DEBUG,INFO,WARN,ERROR,921
  • %tl 输出产生该日志事件的线程名 %m 输出代码中指定的消息。
  • %n 输出一个回车换行符 %c 输出所在类的全名

例如:

[%t] %-5p %c - %m%n
%d{yyyy-MM-dd}-%t-%-5p-%-10c:%m%n

最简单情况下,输出格式可以使用 org.apache.log4j.SimpleLayout 如此就无需设置打印格式。
在代码中使用Log4j

1.得到记录器

使用 Log4j,第一步就是获取日志记录器(即Logger对象),这个记录器将负责控制日志信息。

Logger类提供了静态方法以获得Logger对象。其语法为:

public static Logger getLogger()

getLogger() 方法有多种重载形式。

默认情况下,Log4j回去classpath(即src目录)下查找名为log4j.properties的文件,并读取解析其中配置内容。

此后,你就可以轻松地使用不同优先级别的日志记录打印输出信息。其输出目的地和输出格式取决于你的配置文件配置。

Logger.debug ( Object message ) ;
Logger.info ( Object message ) ;
Logger.warn ( Object message ) ;
Logger.error ( Object message ) ;

log4j 输出 printStackTrace() 的堆栈信息

Exception 对象的 printStackTrace() 总是将打印信息输出到屏幕上。在使用 log4j 时,有时会期望将异常堆栈信息输出到Appender(再由Appender决定输出到哪)。

logger.info(e.getMessage(), e);

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值