log4j2

1、记录日志:

   允许对不同日志级别的日志进行分类

  对日志的输出提供控制

  允许将日志记录到不同的输出目的地,如文件、控制台和数据库

  可以使用配置文件在运行时设置日志记录

2、组成部分:

  1、Logger:这是一个类,它帮忙记录不同日志级别的信息

  2、Appenders:Appenders是对象,它帮助Logger对象将日志写入不同的输出目的地。Appenders可以指定一个文件、控制台后数据库作为输出位置。

  3、Layouts:Layout类帮助我们定义如何再输出终端显示日志信息

3、api下载及管理

<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.3</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.9.1</version>
</dependency>

4、配置顺序优先级
  1、Log4j将检查配置文件路径的系统属性文件:Log4j.configurationFile.如果没有定义系统属性文件,则配置顺序优先级如下:
    Property ConfigurationFactory将在classpath中查找log4j2-test.Properties配置文件
    YAML ConfigurationFactory将在classpath中查找log4j2-test.yaml和log4j2-test.yml配置文件
    JSON ConfigurationFactory将在classpath中查找log4j-test.jsn和log4j2-test.json配置文件
    XML ConfigurationFactory将在classpath中查找log4j-test.xml配置文件
    Property ConfigurationFactory将在classpath中查找log4j2.properities配置文件
    YAML ConfigurationFactory将在classpath中查找log4j2.yml和log4j2.yaml配置文件
    JSON ConfigurationFactory将在classpath中查找log4j2.jsn和log4j2.json配置文件
    XML ConfigurationFactory将在classpath中查找log4j2.xml配置文件
    如果没有提供任何配置文件,默认配置将会生效产生如下行为:
      将使用Root Logger设为ERROR,将日志消息打印到控制台,样式采用%d{HH:mm:ss.sss}[%t]%-5level%logger{36}-%msg%n
    日志级别:ALL/TRACE/DEBUG/INFO/WARN/ERROR/FATAL

5、定义log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//log4j/log4j Configuration//EN" "log4j.dtd">
<log4j:configuration>
    <!--输出到控制台-->
    <appender name="consoleAppender" class="org.apache.log4j.ConsoleAppender">
        <param name="Threshold" value="DEBUG"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
        </layout>
    </appender>

    <!--输出到文件(info)-->
    <!--将生成“info.log.2014-06-11”这样的日志文件-->
    <appender name="fileAppenderInfo" class="org.apache.log4j.DailyRollingFileAppender">
        <!--<param name="File" value="${user.home}/logs/website/info.log" />-->
        <param name="File" value="default1.log"/>
        <param name="DatePattern" value=".yyyy-MM-dd" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
        </layout>
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="LevelMin" value="INFO" />
            <param name="LevelMax" value="INFO" />
        </filter>
    </appender>

    <!--输出到文件(warn)-->
    <appender name="fileAppenderWarn" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="File" value="${user.home}/logs/website/warn.log" />
        <param name="DatePattern" value=".yyyy-MM-dd" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
        </layout>

        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="LevelMin" value="WARN" />
            <param name="LevelMax" value="WARN" />
        </filter>
    </appender>

    <!--输出到文件(error)-->
    <appender name="fileAppenderError" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="File" value="${user.home}/logs/website/error.log" />
        <param name="DatePattern" value=".yyyy-MM-dd" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
        </layout>
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="LevelMin" value="ERROR" />
            <param name="LevelMax" value="ERROR" />
        </filter>
    </appender>

    <!--屏蔽所有org.springframework.*输出的Debug(及以下)信息-->
    <logger name="log4jtutorial.LoggingDemo">
        <level value="INFO"></level>
    </logger>

    <root>
        <level value="ALL"/>
        <appender-ref ref="consoleAppender" />
        <appender-ref ref="fileAppenderInfo" />
        <appender-ref ref="fileAppenderWarn" />
        <appender-ref ref="fileAppenderError" />
    </root>
</log4j:configuration>
View Code

6、定义log4j.properties
log4j.rootLogger=INFO,R,stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n

log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=default.log
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d-[TS] %p %t %c - %m%n

log4j.logger.java.sql.Connection=INFO
log4j.logger.java.sql.Statement=INFO
log4j.logger.java.sql.PreparedStatement=INFO
log4j.logger.java.sql.ResultSet=INFO
View Code

 

 



  

posted @ 2019-05-09 13:23  鸿飞冥冥  阅读(172)  评论(0编辑  收藏  举报