Log4j详细介绍----Log4j快速入门

Posted 金阳光测试

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Log4j详细介绍----Log4j快速入门相关的知识,希望对你有一定的参考价值。

 Log4j是目前运用最广泛的日志控件,它把日志分为ALL,TRACE(跟踪),DEBUG( 调试),INFO(信息),WARNING(警告),ERROR(错误),FITAL(致命),OFF等几个级别,级别依次升高.级别高的Level会屏蔽级别低的信息.如果设置为WARNING,则TRACE,DEBUG,INFO都不会输出。Log4j的使用非常简单

import org.apache.log4j.Logger;


public class Log4jTest {

    public static Logger log = Logger.getLogger(Log4jTest.class);


    public static void main(String[] args) {

        log.trace("trace信息");

        log.debug("debug信息");

        log.info("info信息");

        log.warn("warn信息");

        log.error("errof信息");

        log.fatal("fatal信息");

        try {

            String s = null;

            s.length();

        } catch (Exception e) {

            log.trace("trace一个异常", e);

            log.debug("debug一个异常", e);

            log.info("info一个异常", e);

            log.warn("warn一个异常", e);

            log.error("error一个异常", e);

            log.fatal("fatal一个异常", e);

        }

    }


}


日志配置如输出级别,输出到哪儿,输出什么附加信息,输出格式等,一般都写在配置文件log4j.properties中。Log4j默认的配置文件为log4j.properties.启动时,会加载classpath下的log4j.properties初始化log4j。如果文件不存在,Log4j会在控制台打印如下信息,提示没有找到Log4j配置

1 log4j:WARN No appenders could be found for logger (com.log4j.test2.Log4jTest).2 log4j:WARN Please initialize the log4j system properly.

下面是log4j.properties的配置

# ERROR级别,输出到A1

log4j.rootLogger=DEBUG, A1


# 定义A1为控制台输出

log4j.appender.A1=org.apache.log4j.ConsoleAppender

log4j.appender.A1.layout=org.apache.log4j.PatternLayout

#定义输出格式

log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%C]-[%p] %m%n


 如果不适用默认的文件名log4j.properties,可用使用PropertyConfigurator指定配置文件路径,例如:

import org.apache.log4j.Logger;

import org.apache.log4j.PropertyConfigurator;


public class Log4jConfigTest {


    public static Logger log = Logger.getLogger(Log4jConfigTest.class);


    public static void main(String[] args) {

        PropertyConfigurator.configure("src/log4jConfigTest.properties");

        for (int i = 0; i < 2; i++) {

            for (int j = 0; j < 2; j++) {


                if (log.isDebugEnabled())

                    log.debug("开始计算 " + i + " * " + j + " 次运算");

                // 或者

                // if (log.isEnabledFor(Priority.WARN))

                // log.warn("开始计算 " + i + " * " + j + " 次运算");

            }

        }


        new Thread(new Runnable() {

            public void run() {

                // log.error("debug 级别的输出");

                log.error("ERROR 级别的输出");

            }

        }).start();


        // log.error("debug 级别的输出");

        log.info("INFO 级别的输出");

        log.warn("WARN 级别的输出");

        log.error("ERROR 级别的输出");


        try {

            String s = null;

            s.length();

        } catch (Exception e) {

            log.error(e, e);

        }


    }


}

 Log4j也可以使用XML文件配置,例如:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>

    <!-- 根logger的设置 -->

    <root>

        <priority value="all" />

        <appender-ref ref="console" />

    </root>

    <appender name="console" class="org.apache.log4j.ConsoleAppender">

        <layout class="org.apache.log4j.PatternLayout">

            <param name="ConversionPattern" value="%-d{yyyy-MM-dd HH\:mm\:ss,SSS} [%C]-[%p] %m%n" />

        </layout>

    </appender>

</log4j:configuration>

输出结果

2013-06-06 17:40:36,042 [com.log4j.test2.Log4jTest]-[DEBUG] debug信息

2013-06-06 17:40:36,045 [com.log4j.test2.Log4jTest]-[INFO] info信息

2013-06-06 17:40:36,045 [com.log4j.test2.Log4jTest]-[WARN] warn信息

2013-06-06 17:40:36,046 [com.log4j.test2.Log4jTest]-[ERROR] errof信息

2013-06-06 17:40:36,046 [com.log4j.test2.Log4jTest]-[FATAL] fatal信息

2013-06-06 17:40:36,048 [com.log4j.test2.Log4jTest]-[DEBUG] debug一个异常

java.lang.NullPointerException

    at com.log4j.test2.Log4jTest.main(Log4jTest.java:17)

2013-06-06 17:40:36,051 [com.log4j.test2.Log4jTest]-[INFO] info一个异常

java.lang.NullPointerException

    at com.log4j.test2.Log4jTest.main(Log4jTest.java:17)

2013-06-06 17:40:36,051 [com.log4j.test2.Log4jTest]-[WARN] warn一个异常

java.lang.NullPointerException

    at com.log4j.test2.Log4jTest.main(Log4jTest.java:17)

2013-06-06 17:40:36,051 [com.log4j.test2.Log4jTest]-[ERROR] error一个异常

java.lang.NullPointerException

    at com.log4j.test2.Log4jTest.main(Log4jTest.java:17)

2013-06-06 17:40:36,052 [com.log4j.test2.Log4jTest]-[FATAL] fatal一个异常

java.lang.NullPointerException

    at com.log4j.test2.Log4jTest.main(Log4jTest.java:17)


Log4j的使用非常灵活,功能也很强大。可以配置文件中配置输出样式,可以吧日志输出到屏幕,控制台,各种样式的文件,数据库,FTP 服务器,HTTP 服务器,远程实时监控程序,系统日志,发送邮件到指定的邮箱,甚至发送信息。这些会在后面捡到,好了以上就是Log4j的快速入门,很简单吧.

长按二维码-识别图中二维码




加入免费公益分享的大家庭吧!


让我们一起学习,快速成长。



长按二维码-识别图中二维码




小编:小夕



以上是关于Log4j详细介绍----Log4j快速入门的主要内容,如果未能解决你的问题,请参考以下文章

log4j的简单介绍

log4jspringboot项目启动 ,使用的druid数据源,log4j报错 log4j:WARN Please initialize the log4j system properly.(代码片

Log4j入门介绍

Log4J2 详细介绍

log4j 详细讲解

Log4j详细使用教程