Log4j

2022-10-25 16:03:28 浏览数 (2)

Log4j

  • 一、介绍
  • 二、三大组件
  • 三、实例

一、介绍

Log4j(log for java)

appender:目的地 layout:布局 logger:控制单元 level:级别

代码语言:javascript复制
# Appender
org.apache.log4j.ConsoleAppender(控制台*)
org.apache.log4j.FileAppender(文件*)
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件*)
org.apache.log4j.RollingFileAppender(文件大小达到指定尺寸的时候产生一个新的文件)
org.apache.log4j.WriterAppender(将日志信息以流格式发送到指定的地方)
org.apache.log4j.jdbc.JDBCAppender(把日志用JDBC记录到数据库中)

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

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

# Logger,级别取精确,输出为各自
log4j.rootLogge=
log4j.logger.com.ustc=

三者关系:

  1. 每个appender后面必然需要跟随layout,指定风格样式;
  2. 每个logger都可以制定一个级别,同事引用多个appender;
  3. 每个appender也同时可以被多个logger引用。

#表示注释,对中文不友好。此外,还有log4j.xml另一种配置文件。

代码语言:javascript复制
|--src
|     |main
|          |resources
|                    |log4j.properties

二、三大组件

Log4j由三个重要的组件构成: (1)日志信息的优先级常用ERROR、WARN、 INFO、DEBUG,分别用来指定这条日志信息的重要程度。

代码语言:javascript复制
日志级别从高到低分为:Log4j建议只是用4中级别。
A:off 最高等级,用于关闭所有日志记录。
B:fatal 指出每个严重的错误事件将会导致应用程序的退出。
C:error 指出虽然发生错误事件,但仍然不影响系统的继续运行。
D:warn 表明会出现潜在的错误情形。
E:info 一般和在粗粒度级别上,强调应用程序的运行全程。
F:debug 一般用于细粒度级别上,对调试应用程序非常有帮助。
G:all 最低等级,用于打开所有日志记录。

(2)日志信息的输出目的地,指定了日志将打印到控制台还是文件中; (3)日志信息的输出格式,控制了日志信息的显示内容。

三、实例

代码语言:javascript复制
# debug为日志级别,后两个参数为输出位置。在生产和开发时修改日志级别即可静默部分日志信息
log4j.rootLogger=debug,{}.File,{}.Console

log4j.appender.{}.File=org.apache.log4j.Daily
log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p %-60c %x - %m%n

log4j.appender.{}.Console=
代码语言:javascript复制
private static final Logger logger = Logger.getLogger({ClassName}.class);

logger.error(e.getMessage(), e.getCause());

0 人点赞