zoukankan      html  css  js  c++  java
  • log4j2.xml配置及例子

    1.使用log4j2需要下载包,如下:

    2.配置文件可以有三种格式(文件名必须规范,否则系统无法找到配置文件):

    1. classpath下名为 log4j-test.json 或者log4j-test.jsn文件
    2. classpath下名为 log4j2-test.xml
    3. classpath下名为 log4j.json 或者log4j.jsn文件
    4. classpath下名为 log4j2.xml

    3.日志记录有两种方法:

        1.static Logger logger = LogManager.getLogger(MyApplication.class.getName());

        2.private static Logger logger = LogManager.getLogger("MyApplication"); 

    4.我用的xml的配置,所以介绍一下xml配置:

      1.首先要配几个要用到的appender,这些appender功能不一样,比如有常规输出,重大异常输出,你可能需要他们输出形式或者输出的文件不同,这些都可以在appender中配置

      2.appender里面的一些配置说明:

        name:appender的名称
        fileName:输出文件和名称
        append:是否追加,true表示追加内容到所在的日志,false表示每次都覆盖
        filePattern:表示当日志到达指定的大小或者时间,产生新日志时,旧日志的命名路径
        PatternLayout:指定输出日志的格式,具体代表的意思见前面的博客中
        Policies:策略,表示日志什么时候应该产生新日志,可以有时间策略和大小策略等
        ThresholdFilter :过滤器,log4j2中有很多的filter
      3.接下来配置logger,指定哪些类进行何种输出,这个比较简单,可以直接看栗子:
    <?xml version="1.0" encoding="UTF-8"?>
    <Configuration monitorInterval="1" status="ERROR" strict="true" name="LogConfig">
        <Properties>
            <Property name="logbasedir">e:/log</Property>
            <Property name="log.layout">%d %-5p %t (%c:%L) - %m%n</Property>
        </Properties>
        
        <--此处使用了两种类型的appender,RollingFile为滚动类型,满足策略条件后会新建文件夹记录 -->
        <Appenders>
            <Appender type="Console" name="STDOUT">
                <Target>SYSTEM_OUT</Target>
                <Layout type="PatternLayout" pattern="${log.layout}"/>
            </Appender>
            <Appender type="RollingFile" name="FILE" fileName="${logbasedir}/jutap-${sys:APPNAME}.log"
                 filePattern = "${logbasedir}/jutap-${sys:APPNAME}-%d{yyyy-MM-dd}.%i.log">
                <Policies>
                    <TimeBasedTriggeringPolicy />
                    <SizeBasedTriggeringPolicy size="100 MB"/>
                </Policies>
                <Layout type="PatternLayout">
                    <Charset>GBK</Charset>
                    <Pattern>${log.layout}</Pattern>
                </Layout>
            </Appender>
            <Appender type="RollingFile" name="ExceptionLog" fileName="${logbasedir}/exception-${sys:APPNAME}.log"
                      filePattern = "${logbasedir}/exception-${sys:APPNAME}-%d{yyyy-MM-dd}.%i.log">
                <Policies>
                    <TimeBasedTriggeringPolicy />
                    <SizeBasedTriggeringPolicy size="100 MB"/>
                </Policies>
                <Layout type="PatternLayout">
                    <Charset>GBK</Charset>
                    <Pattern>${log.layout}</Pattern>
                </Layout>
            </Appender>
        </Appenders>
    
        <Loggers>
            <Logger name="exception" level="error" additivity="false">
                <AppenderRef ref="ExceptionLog"/>
            </Logger>
    
            <Root level="info">
                <AppenderRef ref="STDOUT"/>
                <AppenderRef ref="FILE"/>
            </Root>
            <Logger name="com.garfield.learn" level="debug"/>
            <Logger name="com.garfield.learnp" level="info"/>
        </Loggers>
    
    </Configuration>

     done.

  • 相关阅读:
    PyCharm 3.4注册码
    监控Oracle索引是否被启用
    Oracle execute plan 原理分析与实例分享(转)
    6 个重构方法可帮你提升代码质量(转载)
    跟我一起学Oracle 11g【2】----用户管理(转载)
    notecore设置linux/Unix系统文件权限
    Unicode特殊字符的坑
    net多线程
    走过的HttpClient坑
    Postgre备份还原
  • 原文地址:https://www.cnblogs.com/garfieldcgf/p/5817923.html
Copyright © 2011-2022 走看看