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.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM