zoukankan      html  css  js  c++  java
  • 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


      

  • 相关阅读:
    如何控制递归的深度
    判断亲密数
    还是鸡兔同笼
    幂之和
    十进制转换成八进制
    单词译码
    笔试考试系统 ____pagelist使用
    笔试考试系统 ____项目部署
    笔试考试系统 ____成绩统计
    笔试考试系统 ____错题查看
  • 原文地址:https://www.cnblogs.com/wangkc/p/10837925.html
Copyright © 2011-2022 走看看