zoukankan      html  css  js  c++  java
  • log4j2的使用

    预备知识

    日志级别:log4j默认六个级别,即trace、debug、info、warn、error、fatal ,对应意味着该消息为追踪、调试、普通信息、警告、错误、严重错误。可以根据需要子定义其他级别。

    实际操作

    1、导入jar包

    2、编写配置文件(记得要放在classpath下面,否则会找不到的)

    log4j2.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration status="OFF">
        <!-- appenders用于定义日志输出地appender-->
        <appenders>
            <!-- 日志输出地为控制台 -->
            <Console name="Console" target="SYSTEM_OUT">
                <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
                <ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY"/>
                <!-- PatternLayout,用于定义输出的格式 ,以下:时间   线程名  日志级别左对齐占5格  logger名   消息 -->
                <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
            </Console>
            
            <!-- 日志输出地为文件 -->
            <!--append="false",这个log每次运行程序会自动清空,适合临时测试用-->
            <File name="log" fileName="log/test.log" append="false">
                <!-- 没有定义过滤器,默认打印所有级别的信息 -->
                <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
            </File>
            
            <!-- 日志输出地为循环文件,即大于阈值则生成新的文件 -->
            <!--这个会打印出所有的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->
            <RollingFile name="RollingFile" fileName="logs/app.log" filePattern="log/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
                <PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/>
                <SizeBasedTriggeringPolicy size="50MB"/>
            </RollingFile>
        </appenders>
            
        <!--然后定义logger,只有定义了logger并引入的appender,appender才会生效-->
        <loggers>
            <!-- 所有的logger会继承root的配置 -->
            <root level="trace">
                <appender-ref ref="RollingFile"/>
                <appender-ref ref="Console"/>
            </root>
        </loggers>
    
    </configuration>

     3、在代码中的实际运用

    package com.zay;
    import org.apache.logging.log4j.LogManager;
    import org.apache.logging.log4j.Logger;
    import org.json.JSONException;
    
    import com.module.dao.MainDao;
    
    
    public class Test21 {
        //效果和private static Logger logger = LogManager.getLogger(Test21.class.getName())一样。
        //logger名为com.zay.Test21,会继承配置文件中root的配置
        private static Logger logger = LogManager.getLogger();
        
        public static void main(String[] args) throws JSONException{
            //输出日志信息
             logger.trace("追踪信息..");
             logger.debug("调试信息..");
             logger.info("普通信息..");
             logger.warn("警告信息..");
             logger.error("错误信息..");
             logger.fatal("严重错误信息..");
        }
    }

     4、查看运行效果

    根据输出了日志文件

    同时控制台打印信息如下

    参考博文

    Log4j 2使用教程 http://www.cnblogs.com/leo-lsw/p/log4j2tutorial.html

  • 相关阅读:
    <img>的onClick属性的问题。
    Struts2的声明式异常处理
    beginner项目
    Visual Studio 2010 SP1将支持HTML5和CSS3 狼人:
    技巧:你未必知道的IE8九大功能 狼人:
    Mozilla公布Firefox 2011年开发计划 狼人:
    如何真正提高ASP.NET网站的性能 狼人:
    互联网之父Vint Cerf谈重组互联网 狼人:
    一位资深IT自由职业者的2010年回顾 狼人:
    PHP框架 Raxan 1.0 最终版发布 狼人:
  • 原文地址:https://www.cnblogs.com/zadomn0920/p/6138512.html
Copyright © 2011-2022 走看看