springBoot 整合log4j2

因爲項目中之前沒有引入日誌插件,所以我就加了一下。
我是看着這篇博客裝的,其中也進行了一些修改。十分感謝

  1. 取出springBoot自帶的默認日誌控件,添加log4j2日誌控件
    pom文件中添加一下代碼

     <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-web</artifactId>
     <version>1.4.2.RELEASE</version>
     <exclusions><!--   去掉默認配置   -->
         <exclusion>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-logging</artifactId>
         </exclusion>
     </exclusions>
     </dependency>
     <dependency> <!-- 引入log4j2依賴 &ndash;&gt;-->
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-log4j2</artifactId>
         <version>1.4.2.RELEASE</version>
     </dependency>
    

2.在application.properties文件夾下,添加日誌配置

logging.config=classpath:log4j2.xml

3.在src/main/resource下新建log4j2.xml,加入對應的配置。(這個參照其他的就OK了) 具體的配置項恐怕得自己去看

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" monitorInterval="30">
<Properties>
    <Property name="patternLayout">[%d{yyyy-MM-dd'T'HH:mm:ss,SSSXXX}] %-5p [%t] %c{2} - %m%n]</Property>
    <!--<Property name="logdir">${sys:catalina.home}</Property>-->
    <!--<Property name="logdir">/data/logs</Property>-->
    <Property name="logdir">W:/code/logs</Property>
</Properties>
<Appenders>
    <Console name="CONSOLE" target="SYSTEM_OUT">
        <PatternLayout pattern="${patternLayout}"/>
    </Console>
    <Async name="ASYNC">
        <AppenderRef ref="CONSOLE"/>
    </Async>

    <!--<RollingFile name="DebugLogger" fileName="${logdir}/logs/debug/log.log"
                 filePattern="${logdir}/logs/debug/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-log-%i.log" append="true">-->

    <RollingFile name="DebugLogger" fileName="${logdir}/logs/debug/log.log"
                 filePattern="${logdir}/logs/debug/log-%i.log" append="true">
        <ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY"/>
        <PatternLayout pattern="${patternLayout}"/>
        <!--<SizeBasedTriggeringPolicy size="1MB"/>-->
        <DefaultRolloverStrategy max="10"/>
        <Policies>
            <!--根據時間來滾動-->
            <!--<TimeBasedTriggeringPolicy modulate="true" interval="1"/>-->

            <!--根據文件大小來滾動-->
            <SizeBasedTriggeringPolicy size="20 MB"/>
        </Policies>
    </RollingFile>

    <RollingFile name="InfoLogger" fileName="${logdir}/logs/info/log.log"
                 filePattern="${logdir}/logs/info/log-%i.log" append="true">
        <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
        <PatternLayout pattern="${patternLayout}"/>
        <!--<SizeBasedTriggeringPolicy size="1MB"/>-->
        <DefaultRolloverStrategy max="10"/>
        <Policies>
            <!--根據時間來滾動-->
            <!--<TimeBasedTriggeringPolicy modulate="true" interval="1"/>-->

            <!--根據文件大小來滾動-->
            <SizeBasedTriggeringPolicy size="20 MB"/>
        </Policies>
    </RollingFile>

    <RollingFile name="WarnLogger" fileName="${logdir}/logs/warn/log.log"
                 filePattern="${logdir}/logs/warn/log-%i.log" append="true">
        <ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/>
        <PatternLayout pattern="${patternLayout}"/>
        <!--<SizeBasedTriggeringPolicy size="1MB"/>-->
        <DefaultRolloverStrategy max="10"/>
        <Policies>
            <!--根據時間來滾動-->
            <!--<TimeBasedTriggeringPolicy modulate="true" interval="1"/>-->

            <!--根據文件大小來滾動-->
            <SizeBasedTriggeringPolicy size="20 MB"/>
        </Policies>
    </RollingFile>

    <RollingFile name="ErrorLogger" fileName="${logdir}/logs/error/log.log"
                 filePattern="${logdir}/logs/error/log-%i.log" append="true">
        <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
        <PatternLayout pattern="${patternLayout}"/>
        <!--<SizeBasedTriggeringPolicy size="1MB"/>-->
        <DefaultRolloverStrategy max="10"/>
        <Policies>
            <!--根據時間來滾動-->
            <!--<TimeBasedTriggeringPolicy modulate="true" interval="1"/>-->

            <!--根據文件大小來滾動-->
            <SizeBasedTriggeringPolicy size="20 MB"/>
        </Policies>
    </RollingFile>

</Appenders>
<loggers>
    <root level="info">
        <AppenderRef ref="ASYNC"/>
        <appender-ref ref="DebugLogger"/>
        <appender-ref ref="InfoLogger"/>
        <appender-ref ref="WarnLogger"/>
        <appender-ref ref="ErrorLogger"/>
    </root>
</loggers>
</Configuration>

4.程序裏面直接引入

	private static final Logger logger = LoggerFactory.getLogger(ScheduleJob.class);
	 方法裏面用這個就ok了。
	logger.info("this is info ");
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章