log4j配置使用

来源:互联网 发布:怎样提高淘宝店排名 编辑:程序博客网 时间:2024/05/29 09:13

摘要:log4j的配置有很多方式方法,笔者就把自己现在用的配置方式写一下吧,比较简单,也没有深入研究这块,下面我们开始
日志记录器(Logger)是日志处理的核心组件。
日志记录器(Logger)的行为是分等级的。如下所示:
分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、ALL或者您定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是ERROR->WARN->INFO->DEBUG可以设置级别,低于此级别的,将不会打印
ALL 各级包括自定义级别
DEBUG 指定细粒度信息事件是最有用的应用程序调试
ERROR 错误事件可能仍然允许应用程序继续运行
FATAL 指定非常严重的错误事件,这可能导致应用程序中止
INFO 指定能够突出在粗粒度级别的应用程序运行情况的信息的消息
OFF 这是最高等级,为了关闭日志记录
TRACE 指定细粒度比DEBUG更低的信息事件
WARN 指定具有潜在危害的情况
下面来看具体配置,在resources下新建log4j.xmld代码如下

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE log4j:configuration SYSTEM "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd"><log4j:configuration>    <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">        <layout class="org.apache.log4j.PatternLayout">            <param name="ConversionPattern" value="%d{dd/MM/yy HH:mm:ss.SSS} [%t] [%-5l] %p - %m%n"/>        </layout>    </appender>    <!--自定义appender-->    <appender name="custom_a" class="org.apache.log4j.RollingFileAppender">        <param name="File" value="logs/custom_a.log"/>  <!--日志输出的本地路径-->        <param name="Append" value="false"/> <!--是否叠加 true:日志都会在文件里面; false:每次进来都覆盖上一次的-->        <param name="MaxBackupIndex" value="3"/>        <!--最大roll的文件数-->        <param name="MaxFileSize" value="10240"/> <!--文件size上限-->        <layout class="org.apache.log4j.PatternLayout">          <!--日志输出格式-->            <param name="ConversionPattern" value="[%d{dd/MM/yy HH:mm:ss:sss}] [%t] [%-5l] %p : %m%n"/>        </layout>    </appender>    <!--自定义logger-->    <logger name="custom_l" additivity="false">        <level value="DEBUG"/>        <appender-ref ref="custom_a"/>    </logger>    <!--设置控制台输出级别-->    <root>        <level value="DEBUG"/>        <appender-ref ref="CONSOLE"/>    </root></log4j:configuration>

我们对上面的稍微解释下
appender 为日志输出目的地,Log4j提供的appender有以下几种:

org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

Layout:日志输出格式,Log4j提供的layout有以下几种:

org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

打印参数: Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,如下:
%m 输出代码中指定的消息
  %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
  %r 输出自应用启动到输出该log信息耗费的毫秒数
  %c 输出所属的类目,通常就是所在类的全名
  %t 输出产生该日志事件的线程名
  %n 输出一个回车换行符,Windows平台为“/r/n”,Unix平台为“/n”
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss , SSS},输出类似:2002年10月18日 22 : 10 : 28 , 921
  %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java: 10 )

配置好了,我们来测试一下

import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class TestLog {    //控制台输出    private static Logger log = LoggerFactory.getLogger(TestLog.class);    //日志输出在custom_l指定的文件目录中    private static  Logger custom_l = LoggerFactory.getLogger("custom_l");     public static void main(String args[]) {           log.debug("debug");           log.warn("warn");           log.debug("debug");           log.error("error");         custom_l.info("custom_l info");         custom_l.debug("custom_l debug");      }}

运行结果如下图

这里写图片描述

上面的标签解释从百度复制而来,写的有误的,望留言,万分感谢!

原创粉丝点击