Log4j实用手册
===================================================================================================
简介
1.Log4J是Apache的一个开源项目,是用来操作程序日志信息的框架。
______________________________________________________________________________________
2.Log4J的功能通过配置log4j.properties属性文件实现。
______________________________________________________________________________________
3.log4j.properties文件中配置日志信息的记录器,并为记录器配置日志级别、输出地点、输出格式。
·首先定义记录器,管理不同的日志信息(可以配置一个或多个记录器);
·每一个记录器对应一个或多个存放器,用来设置日志信息的存放地点;
·每一个存放器对应一个布局格式,用来设置日志信息输出时的布局格式。
记录器用来整合日志信息,一个日志信息整合好之后,交给记录器的所有存放器,每一个存放器根据自己的格式进行输出记录改条日志信息。
所以:
存放器是属于记录器的,格式布局是属于存放器的。
记录器可配置多个存放器,存放器只能有一个输出方式。
______________________________________________________________________________________
4.输出地点
·控制台 - Console
·文件 - File
·GUI component - GUI组件
·Remote socket server - 套接口服务器
·NT Event Logger - NT的事件记录器
·Remote UNIX Syslog daemon - UNIX Syslog守护进程
______________________________________________________________________________________
5.输出格式
·HTML格式
·灵活格式
·包含日志信息的级别和信息字符串
·包含日志产生的时间、线程和类别等信息
______________________________________________________________________________________
6.程序中通过获得记录器,调用记录器的方法来产生日志信息。
记录器 – Logger
记录器:决定什么日志信息应该被输出、什么日志信息应该被忽略。
______________________________________________________________________________________
1.根记录器 : rootLogger
配置语法
- 日志级别 :all、debug、info、warn、error、fatal、off、自定义级别 [低-高]
- 分级原因 :
______________________________________________________________________________________
2.自定义记录器
配置语法
______________________________________________________________________________________
3.记录器的继承性
如果一个记录器后面又用"."跟出了另一个记录器,则点后面的记录器是点前面的记录器的子记录器。
log4j.logger.记录器1 = 日志级别,存放器1
log4j.logger.记录器1.记录器2 = 日志级别,存放器1
继承关系研究
- 日志级别继承 :子记录器黙认继承父记录器的日志级别
但如果子记录器新定义了日志级别,则不继承而是使用自己新定义的日志级别;
- 存放地点继承 :子记录器黙认继承父记录器的所有存放器
但如果把子记录器的additivity标志设为false,那么它就不会继承父记录器的存放器。
根记录器是所有其它记录器的基记录器
- 永远存在
- 不能通过名字检索或引用
- 通过Logger.getRootLogger()方法取得它。
______________________________________________________________________________________
4. Logger类 【程序中记录器由org.apache.log4j.Logger类实现操作】
Logger类方法列表:
//获得记录器的方法
public static Logger getRootLogger();
public static Logger getLogger(String 自定义记录器名称);
//固定级别记录
public void debug(Object 日志消息);
public void info (Object 日志消息);
public void warn (Object 日志消息);
public void error(Object 日志消息);
public void fatal(Object 日志消息);
//参数级别记录
public void log(Priority 日志级别, Object日志消息);
程序中首先获得记录器[根记录器或者自定义记录器],而后调用记录器的方法进行日志信息的记录。
- 调用固定级别记录方法时,只有当该方法的级别>=记录器配置级别时, 该方法才会被执行。
- 调用log()方法时,只有当参数级别>=WARN时,它才会被执行。
存放器 - Appender
存放器:存放日志信息 / 指定日志信息输出地。
____________________________________________________________________________
配置语法
log4j.appender.存放器名 = 存放类
log4j.appender.存放器名.option1 = value1
… …
log4j.appender.存放器名.optionN = valueN
____________________________________________________________________________
存放类
org.apache.log4j.ConsoleAppender - 控制台输出
org.apache.log4j.FileAppender - 文件
org.apache.log4j.DailyRollingFileAppender - 每天产生一个日志文件
org.apache.log4j.RollingFileAppender - 文件大小到达指定尺寸的时候产生一个新的文件
org.apache.log4j.WriterAppender - 将日志信息以流格式发送到任意指定的地方
备注:
如果一个存放器使用的是文件相关的存放类,则必须为该存放器再配置一个输出文件
log4j.appender.某存放器 = org.apache.log4j.FileAppender
log4j.appender.某存放器.File = log.txt
格式化 - Layout
存放器:指定日志信息的输出格式。
____________________________________________________________________________
配置语法
log4j.appender.存放器名.layout = 格式类
log4j.appender.存放器名.layout.option1 = value1
… …
log4j.appender.存放器名.layout.optionN = valueN
____________________________________________________________________________
格式类
org.apache.log4j.HTMLLayout - HTML表格形式布局
org.apache.log4j.PatternLayout - 灵活地指定布局模式
org.apache.log4j.SimpleLayout - 包含日志信息的级别和信息字符串
org.apache.log4j.TTCCLayout - 包含日志产生的时间、线程和类别等信息
备注:
如果是PatternLayout方式,则需要使用ConversionPattern预定义输出格式。
log4j.appender.存放器名.layout = org.apache.log4j.PatternLayout
log4j.appender.存放器名.layout.ConversionPattern = 预定义格式
预定义格式符号:
%r - 自程序开始后消耗的毫秒数
%t - 表示日志记录请求生成的线程
%p - 日志级别
%r - 与日志请求相关的类别名称
%c - 记录器所在类的全类名
%m%n - 日志信息
%d - 日志时间 {yyyy-MM-dd HH:ss:mm}
[经测试:%m%n放在其他信息前面会导致其他信息换行输出]
log4j.properties
#根记录器
log4j.rootLogger = 级别,存放器00
log4j.appender.存放器00 = 存放类
log4j.appender.存放器00.layout = 格式类00
#记录器01
log4j.logger.记录器01 = 级别,存放器01,存放器11
log4j.appender.存放器01 = 存放类
log4j.appender.存放器01.layout = 格式类
log4j.appender.存放器11 = 存放类
log4j.appender.存放器11.layout = 格式类
#记录器02
log4j.logger.记录器02 = 级别,存放器02
log4j.appender.存放器02 = 存放类
log4j.appender.存放器02.layout = 格式类
开发实例
import org.apache.log4j.Logger
public class ClassName
{
public void static main(String [] args)
{
Logger theLogger = new Logger();
theLogger.warn(“ddddddd”);
}
}
实际经验
1.获取不到记录器
代码中,如果获取一个记录器时,该记录器不存在,则会使用根记录器。
Logger logger = Logger.getLogger(“配置文件中不存在的记录器名”);
此时,获取到的记录器实际上是根记录器。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Cacti完全使用手册
I.总览 Cacti 和Nagios的监控体系可以说是使用广泛而且支持
xml Graph Windows -
合宙4G模组Air780E开发板使用手册
合宙Air780E开发板使用说明
开发板 物联网 嵌入式 硬件开发 硬件设计 -
Log4j完全使用手册
置。一、LOG4J组成 LOG4J主要由三大组件组成: . Logger: 决定什么日志信息应该被
apache 配置文件 Layout -
vim的实用手册
vim的使用大全,忘了或者对vim没有系统的学习概念的人可以看一下。
vim vim使用大全 vim使用方法 -
Vue 2.0实用手册
1.Vue.js-是国内开发者尤雨溪开发的js框架,它是实现UI层的渐进式框架, Vue借鉴了Angular的指令、React中组件和props等优点
前端开发 JavaScript Vue 数据 事件总线 -
Log - Log4j - Apache Log4j概论
1. Log4j的类图Logger - 日志写出器,
java c/c++ Layout xml 构造方法 -
[Log4j]--log4j日志管理
log4j日志记录实现
log4j apache properties文件 jar -
怎么把conda打包成docker
最近要把一个python项目打包成.exe迁移到其他无环境的电脑上直接运行,最初打算使用pyinstall,不过有人说pyinstall打包总是缺少某些依赖,所以就在网上寻找方法,选择了使用cxfreeze进行打包。  
怎么把conda打包成docker python 项目打包 安装包