2020.7.29
一、今日学习内容
1、用log4j记录异常日志信息
(1)log4j组成:log4j主要由三大组件组成。
Logger: 决定什么日志信息应该被输出、什么日志信息应该被忽略。
Appender: 指定日志信息应该输出到什么地方,这些地方可以是控制台、文件和网络设备.
Layout: 指定日志信息的输出格式。
一个Logger可以有多个Appender,也就是说,日志信息可以同时输出到多个设备上,每个Appender对应一种Layout,流程关系如图8-3所示。
(2)Logger组件
a.Logger组件提供的方法
Logger组件是log4j的核心组件,它代表了log4j 的日志记录器,它能够对日志信息进行分类筛选。它由org.apache.log4j.Logger类实现,Logger 类源代码如下。
public class Logger { // Creation & retrieval methods: public static Logger getRootLogger() : public static Logger getLogger (String name) ; // printing methods: public void debug (Object message) ; public void info (0bject message) ; public void warn (Object message); public void error (object message) : public void fatal (object message) ; // generic printing method: public void log(Priority P,object message) ;
b.在配置文件中配置Logger组件
可在log4j配置文件中配置自己的Logger组件,配置如下。
log4j.logger.myLogger=WARN
以上代码定义了一个Logger组件,名称为myLogger,日志级别为WARN.
c.日志级别种类
日志的种类一共有五种,级别由高到低依次是fatal、error、 warm、 info. debug. 获得Logger实例后,用户可调用以下方法之-输出日志信息。
以上方法只有当它的级别大于或等于Logger组件配置的日志级别时才被调用。以前面大家配置的myLogger为例,它的日志级别为WARN,那么在程序中,它的 warn(). error()、fatal()方法会被执行。对于log()方法,只有当它的参数Priority指定的日志级别大于或等于WARN时,它才会被执行。
(3)Appender组件
Appender组件决定将日志信息输出到什么地方。支持以下目的地。
#控制台(Console)。
#文件(File).
#GUI组件(GUI component).
#套接口服务器(Remote socket server).
#NT的事件记录器(NT Event Logger).
#UNIX Syslog守护进程(Remote UNIX Syslog daemon).
一个Logger可同时对应多个Appender.
下面的myLogger配置两个Appender:一个是file,另一个是console.
log4j. logger.myAppender=WARN, file, console log4j. appender.file=org. apache.log4j. RollingFileAppender log4j. appender.file.File=log.txt log4j.apender.console=org. apache .1og4j.ConsoleAppender
(4). Layout组件
Layout组件决定日志输出格式,有以下几种类型。
a. org.apache.log4j.HTMLLayout(以 HTML表格形式布局)。
b.org.apache.log4j.PattermLayout(可 以灵活地指定布局模式)。
c.org.apache.log4j.SimpleLayout(包含 日志信息的级别和信息字符串)。
d. org.apache.log4j.TTCCLayout(包含 日志产生的时间、线程和类别等信息)。
(5)log4j的基本用法
a.导入log4j的jar包
导入log4j的方式有两种:第-种直接使用命令行导入;第二种使用MyEclipse导入。.
#命令行导入log4j.
#使用MyEclipse导入.
使用MyEclipse导入前,首先建立-一个Java工程,选择File- +New- -Java- + Project命令
二、遇到的问题
还不会使用log4j
三、明日计划
继续学习log4j和第8章的内容