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 ");
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章