zoukankan      html  css  js  c++  java
  • Log4j 基本配置

    首先下载Log4j有关的jar包,虽然现在 Log4j更新到了2.0,但是和以前的1.X版本完全不兼容,所以今天我们还是先来使用1.X的版本,等时间再久一点,2.0版本稳定并且使用量大了之后再升级

    1.X版本最新的版本是1.2.17,但是现在Log4j的官网首页是只提供2.0的jar包下载,所以千万别被他迷惑了,虽然2.0的包下载下来也有一个1.2版本的包,但是那是2.0的,不是以前的1.2。

    我们打开Log4j的历史版本页面,进行下载
    地址:http://archive.apache.org/dist/logging/log4j/
    你可以看到里面都是Log4j以前的版本,而其中1.X最新的版本是13年2月份更新的1.2.17版本。
    我们直接下载:
    jar(架包):http://archive.apache.org/dist/logging/log4j/1.2.17/log4j-1.2.17.jar
    tar.gz(架包+源打包):http://archive.apache.org/dist/logging/log4j/1.2.17/log4j-1.2.17.tar.gz

    下载完之后我们开始进行Log4j的初步使用

    1.首先将jar包放入项目的lib库中

    我的项目是IDEA的项目,所以lib在跟目录下,不过一般正常的javv web应用的lib都是web目录下的

    2.将jar包放入之后,我们添加使用Log4j的配置文件
    把配置文件放在classpath目录下,一般我们的正常情况都是都是放在src根目录下就可以了

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    #定义Log4j输出的日志级别
    #TRACE < DEBUG < INFO < WARN < ERROR < FATAL
    log4j.rootCategory=DEBUG,stdout
     
    #  Log4j提供的appender有以下几种:
    #  org.apache.log4j.ConsoleAppender(控制台)
    #  org.apache.log4j.FileAppender(文件)
    #  org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
    #  org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生新文件)
    #  org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
     
    #  Log4j提供的layout有以下几种:
    #  org.apache.log4j.HTMLLayout(以HTML表格形式布局),
    #  org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
    #  org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
    #  org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.threshold=DEBUG
     
    #    %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
    #    %r 输出自应用启动到输出该log信息耗费的毫秒数
    #  %c 输出所属的类目,通常就是所在类的全名
    #  %t 输出产生该日志事件的线程名
    #  %n 输出一个回车换行符,Windows平台为“ ”,Unix平台为“ ”
    #  %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似: 20021018221028921
    #  %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)
    #    %f 输出文件名 如Test_Log4J.java
    #   [%c{1}就是将class名从右开始输出几个部分,输出的是,Test_Log4J.如果将1改为2,则输出为test.Test_Log4J.
    log4j.appender.stdout.layout.ConversionPattern=[%d{yyy-MM-dd HH:mm:ss,SSS}]-[%p]-[MSG!:%m]-[%c:%L]%n

    解释一下上面的配置 ,虽然有注释,我定义stdout的log4j输出对象,他的输出级别是DEBUG,从上面的注释看到,DEBUG是大于TRACE级别,但是小于INFO级别,所以正常情况来说这个对象只会输出DEBUG或者DEBUG以上级别的信息,而TRACE级别的信息他会忽略掉,
    然后我将他说的输出对象 设置 为ConsoleAppender 也就是直接输出到控制台
    最后指定他的输出格式PatternLayout:[%d{yyy-MM-dd HH:mm:ss,SSS}]-[%p]-[MSG!:%m]-[%c:%L]%n
    所以正常情况输出的信息应该会是这样的

    1
    [2013-11-11 23:48:30,062]-[INFO]-[MSG!:测试]-[org.out.HelloOut:26]

    时间-级别-输出信息-输出的类 

    3.有了上面的配置文件后,我们写一个测试类,测试一下是否配置成功,能够输出日志 
    代码如下: 

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    package org.test;
     
    import org.apache.log4j.Logger;
     
    public class Log4jTest {
        private static final Logger log = Logger.getLogger(Log4jTest.class);
     
        public static void main(String[] args) { <span></span>  <span></span> <span></span>      <span></span>         
            log.trace("TRACE:测试输出1");
            <span></span>log.debug<span></span>("DEBUG:测试输出2");
            log.info("INFO: Log4j 输出测试成功");
        }
    }

    4.运行上面的代码之后我们最终会出现下面这样的结果 

    1
    2
    [2013-11-12 00:19:16,562]-[DEBUG]-[MSG!:DEBUG:测试输出2]-[org.test.Log4jTest:18]
    [2013-11-12 00:19:16,562]-[INFO]-[MSG!:INFO: Log4j 输出测试成功]-[org.test.Log4jTest:19]

    我们发现测试1是没有输出的,那说明我们的配置成功了,只输出了Debug级别和Debug级别以上的日志,并且输出到了控制台

    5.配置成功.

  • 相关阅读:
    图片加载库Glide
    Home键和back键下 Activity的生命周期变化
    Fragment重叠问题
    Fragment与Activiy之间的交互
    android事件拦截处理机制详解 .--------转
    实现手机QQ的抖动效果
    点评点赞功能的基本实现------个人观点
    自定义侧滑菜单
    检查设备剩余内存
    StringByAppendingPathComponent和stringByAppendingString的区别
  • 原文地址:https://www.cnblogs.com/cglWorkBook/p/4849034.html
Copyright © 2011-2022 走看看