【日志框架】——通过log4j.properties文件学习log4j
来源:互联网 发布:高中物理仿真实验软件 编辑:程序博客网 时间:2024/06/05 18:17
本篇文章将会介绍应用系统中使用日志的原因,为什么要使用日志框架log4j,并通过log4j.properties文件初步学习日志框架log4j。
必要性
在大型系统中日志处理是不可或缺的功能。日志主要记录两类信息:
【1】.异常信息:
在系统开发过程中,异常信息直接打印到控制台,我们直接看到并进行解决,不用记录到日志中。但是当系统已经部署到测试环境或者生产环境中,这个时候开发人员并没有盯着控制台的异常信息,所以就需要我们把异常信息记录到日志中(可以存成文件或存到数据库中),以便之后,开发人员根据日志快速定位到发生异常的位置,了解异常产生原因。【2】.操作信息:
记录用户操作,跟踪用户行为,为以后对系统和用户进行分析,数据挖掘。
为什么要使用log4j
先来直观看看log4j.properties长什么样子。我从中摘了两块内容:
组件
logger配置
log4j.rootLogger=ERROR, stdout, filelog4j.logger.com.tgb=INFO, filelog4j.logger.org=INFO, filelog4j.logger.org.hibernate=INFO, file
appender配置
log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.conversionPattern= %d [%X{loginUserId}/%X{req.remoteAddr}/%X{req.id} - %X{entranceMethod} - %X{req.requestURIWithQueryString}] %-5p %c - %m%n
文件中省略部分类似于这两部分配置。一种是log4j.logger……开头,一种是log4j.appender……开头
直观了解了这些配置之后,我们开始补充一些基本的log4j配置知识。
网上查资料都说log4j有三大组件:logger,appender和layout。但是从配置文件中看layout更像是appender的一个option。例如appender的option有File,有layout。不过,怎么理解都可以。
logger
记录器,用来记录日志。在要输出日志的类中(如下所示,在ExcelSheetHandler这个类中),我们会通过以下代码获得logger。
private static org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger(ExcelSheetHandler.class);
当你要记录日志时,通过如下代码就可以
logger.error(e.getMessage(), e) ;
appender
附加器,他会携带日志输出的目的地的位置、日志格式(layout)信息,并把日志按指定格式输出到指定位置。
它有几种不同的类型:
不同类型示例
#System cm log appender#appender类型log4j.appender.cm=org.apache.log4j.RollingFileAppender#输出日志到指定文件路径log4j.appender.cm.File=/was/waslogs/loislogs/lois-core-cm.log#超过文件最大容量,将会产生一个新文件如:lois-core-cm.log.1存放原来的内容log4j.appender.cm.MaxFileSize=5024KB#可以产生的新文件的最大数目log4j.appender.cm.MaxBackupIndex=100#布局(此种布局可以通过下面的ConversionPattern灵活指定格式)log4j.appender.cm.layout=org.apache.log4j.PatternLayout#布局中的格式log4j.appender.cm.layout.ConversionPattern=<%d{yyyy-MM-dd HH:mm:ss S}> <%p> [%c] %x - %m%n
我们在代码中通过logger记录了日志信息,在配置文件中配了配置appender。现在就需要把两者结合起来。怎么结合呢?
log4j.logger.org.hibernate=INFO, file
org.hibernate是一个包的名称,file是appender,INFO是日志级别。这样配置的意思是这个包下所有logger,会按照file这个appender,输出满足INFO级别(小于等于该级别,Debug>INFO>ERROR)的日志。
总结
logger就是让程序员来记录日志信息,appender就是定义日志信息可以保存的另一个位置,相当于对日志信息的备份,而且是按照布局和格式“优雅”的备份。然后,我们通过配置个性化定制不同package下的logger中的信息是否备份(日志级别来控制),备份到哪里(appender的类型),备份成什么样(appender的layout)。
- 【日志框架】——通过log4j.properties文件学习log4j
- 日志文件详解log4j.properties
- 学习log4j--日志文件
- log4j日志配置文件log4j.properties
- log4j.properties 把日志打成文件
- 配置我的日志文件log4j.properties
- java日志文件log4j.properties配置详解
- log4j.properties文件日志级别(自用)
- java日志文件log4j.properties配置详解
- java日志文件log4j.properties配置详解
- java日志文件log4j.properties配置详解
- java日志文件log4j.properties配置详解
- java日志文件log4j.properties配置详解
- java日志文件log4j.properties配置详解
- java日志文件log4j.properties配置详解
- java日志文件log4j.properties配置详解
- java日志文件log4j.properties配置详解
- java日志文件log4j.properties配置详解
- tomcat7+jdk的keytool生成证书 配置https
- 版本控制git与eclipse的结合使用
- 当下最流行的10大H5前端框架
- NSData和NSString、NSDictionary、NSArray互转
- HDU4355(三分)
- 【日志框架】——通过log4j.properties文件学习log4j
- cordova试用
- Android 4G专网模块信号的上报过程
- 移动端canvas.arc与css的filter
- zzuli 1877: 蛤玮打扫教室
- 快速多人游戏(1) - 介绍
- Java用类和对象,构造方法来实现超市管理系统
- LeetCode 337. House Robber III
- 软件工程用图