`
LiYunpeng
  • 浏览: 939212 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

log4j入门

阅读更多
这里仅介绍配置文件的思想顺序方便理解,具体配置网上会有很多,不在此过多介绍
首先,需要了解log4j的几个预定义级别
debug < info < warn < error < fatal
分别可以控制想要的不同级别的输出规则

---------------------------------------------------------------------------
log4j里面有两个核心的概念,一个是appender、一个是logger,这里,我们需要先要有一个计划,就是把日志想要输出到什么位置、以什么样的形式。
---------------------------------------------------------------------------
所以,我们先来看appender
他的作用是我们来配置日志需要输出到什么位置,以什么样的格式输出
Appender分别提供了如下几种
# org.apache.log4j.ConsoleAppender(控制台),
#org.apache.log4j.FileAppender(文件),
#org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
#org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
#org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

比如如下代码
log4j.appender.INFO = org.apache.log4j.DailyRollingFileAppender
log4j.appender.INFO.File = /Volumes/Data/javaLog/info.log
log4j.appender.INFO.Threshold = info
log4j.appender.INFO.layout = org.apache.log4j.PatternLayout
log4j.appender.INFO.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [%-5p] %x  [ %t:%r ] - %m%n

第一行就是我们选择用哪一种输出形式
第二行就是输出文件的位置目录
第三行是这种输出需要过滤的日志级别,也就是低于这个级别的都在这里被忽略,稍后详细写
第四行是输出格式的选择,基本提供了如下等
org.apache.log4j.HTMLLayout(以HTML表格形式布局)
org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
第五行就是具体输出的格式了,因为第四行选择了自定义的布局,第五行使用匹配的表达式来输出。

这样输出的形式基本就配置完了,我们还可以选择其他的形式输出,根据自己的需求。

---------------------------------------------------------------------------
下面就是Logger了,我们要针对于不同的需求和代码,输出到不同的Appender中,上面我们已经设置好Appender,在Logger中配置对应的输出即可。

---------------------------------------------------------------------------
我们先来看rootLogger
也就是整个log的根
代码如下
log4j.rootLogger = debug , DEBUG , CONSOLE , INFO , ERROR
这里面其实要分为两部分,第一部分,就是等号后面的第一个参数,就是我们之前说到的5种日志级别,我们在这里面配置我们所有的日志的最低级别是什么,比如是error,那么所有error级别以下的日志,都不会被记录,我们这里配置的是debug。
后面的几个参数就是不同的Appender。
意思就是,所有高于debug级别的日志,会分别向后面4个日志输出方式进行输出

---------------------------------------------------------------------------
然后我们在看Logger
我们配置的所有Logger其实都相当于是继承rootLogger的配置,如果我们不单独配置,则使用rootLogger,如果我们配置的级别比rootLogger高,则会在相应自己的配置上使用这个规则,举例说明
log4j.logger.com.ibatis = info
这句配置的意思就是,在com.ibatis包下所输出的日志,只有info级以上的,会分别输出到rootLogger配置的4个日志输出方式中输出

再举例
log4j.logger.com.ibatis = info, DEBUG
这句话的意思和上句其实级别是一样的,不过,他会在DEBUG这个Appender中输出两次日志,也就是,这里面的Logger,是属于包含的关系,rootLogger属于覆盖整个包的范围之内,而com.ibatis包下有自己的日志触发,所以两个都会捕捉到并进行处理,如果说我们又配置了一个
log4j.logger.com = info, DEBUG的话,一次执行日志输出,DEBUG中就会被输出三次,因为有三个地方在捕捉

所以这个地方我们一定要注意,否则日志输出很多次,看起来可能影响阅读和理解。
如果我们想在Logger只用自己的,而不再继承rootLogger,则用如下写法
log4j.additivity.com.ibatis=false
也就是设置additivity,这样就只会按照自己的级别规则进行输出了,也就是仅输出一次。

---------------------------------------------------------------------------
思想流程就是这些,具体的配置还需要看文档
分享到:
评论

相关推荐

    log4j入门到详解

    log4j入门到详解 log4j入门到详解 log4j入门到详解 log4j入门到详解 log4j入门到详解 log4j入门到详解 log4j入门到详解

    log4j入门、详解

    log4j入门、详解

    log4j入门详解

    log4j入门详解,适用于基log4j入门

    log4j入门到详解.pdf

    log4j入门到详解.pdf。。。

    log4j入门教程.docx

    log4j入门教程 Log4j是一个开源的日志记录组件,其产品已经相当的成熟,且使用非常的广泛。在工程中以易用,方便等代替了 System.out 等打印语句。 Log4j的目标是:它允许开发人员以任意的精细程度控制哪些日志说明...

    log4j入门、详解.pdf

    log4j入门、详解.pdf

    Log4j入门实例Log4j入门实例

    Log4j入门实例,具体效果和过程看博文 http://blog.csdn.net/evankaka/article/details/45815047

    log4j 入门

    log4j是一个非常强大的log记录软件,下面我们就来看看在项目中如何使log4j。

    log4j入门配置

    log4j入门配置,java开发过程中的日志配置

    Log4j入门文档

    Log4j入门文档,很不错的,呵呵!

    log4j 入门程序

    自己写的log4j的入门程序,对log4j中几种级别的日志输出进行了测试,程序简单易懂

    Log4j 入门到详解[推荐].pdf

    Log4j 入门到详解[推荐].pdf 介绍log4j的使用实践,需要的可以下载

    Log4j入门学习笔记

    pptx格式。Log4j详细讲解。Logger--日志写出器,供程序员输出日志信息 。Log4j 允许开发人员定义多个Logger,每个Logger拥有自己的名字,Logger之间通过名字来表明隶属关系。

    log4j使用笔记

    1.该笔记中详细的介绍了log4j的作用和优势、具体地讲解了log4j的使用步骤和详细...3.该笔记从log4j的简介/入门开始介绍,到具体的使用实现都一一详细分析,是log4j入门和精通值得参考的笔记,希望给大家带来意外的帮助。

    java源码 maven+springmvc+mybatis+log4j 入门级示例 2018127

    java源码 maven+springmvc+mybatis+log4j 入门级示例 .

    log4j入门详解及运行库

    程序开发环境中的日志记录是由嵌入在程序中以输出一些对开发人员有用信息的语句所组成。例如,跟踪语句(trace),结构转储和...log4j提供分级方法在程序中嵌入日志记录语句。日志信息具有多种输出格式和多个输出级别。

Global site tag (gtag.js) - Google Analytics