spring boot整合log4j2输出日志到mongodb

1、引入依赖

<?xml version="1.0" encoding="UTF-8"?>  
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
    <modelVersion>4.0.0</modelVersion>  
    <artifactId>spring-boot-web-test</artifactId>  
    <version>1.0</version>  
    <packaging>jar</packaging>  
    <parent>  
        <groupId>org.springframework.boot</groupId>  
        <artifactId>spring-boot-starter-parent</artifactId>  
        <version>1.5.1.RELEASE</version>  
    </parent>  
  
    <properties>  
        <main.basedir>${basedir}/..</main.basedir>  
        <java.version>1.8</java.version>  
    </properties>  
  
    <dependencies>  
  
  
        <!-- spring boot starter -->  
        <dependency>  
            <groupId>org.springframework.boot</groupId>  
            <artifactId>spring-boot-starter</artifactId>  
            <exclusions>  
                <exclusion>  
                    <groupId>org.springframework.boot</groupId>  
                    <artifactId>spring-boot-starter-logging</artifactId>  
                </exclusion>  
            </exclusions>  
        </dependency>  
        <!-- log4j2 -->  
        <dependency>  
            <groupId>org.springframework.boot</groupId>  
            <artifactId>spring-boot-starter-log4j2</artifactId>  
        </dependency>  
        <dependency>  <!-- 加上这个才能辨认到log4j2.yml文件 -->  
            <groupId>com.fasterxml.jackson.dataformat</groupId>  
            <artifactId>jackson-dataformat-yaml</artifactId>  
        </dependency>  
        <dependency>  
            <groupId>org.apache.logging.log4j</groupId>  
            <artifactId>log4j-nosql</artifactId> <!-- 必需,否则报错 -->  
            <version>2.7</version>  
        </dependency>  
        <!-- test -->  
        <dependency>  
            <groupId>org.springframework.boot</groupId>  
            <artifactId>spring-boot-starter-test</artifactId>  
            <scope>import</scope>  
        </dependency>  
        <!-- web -->  
        <dependency>  
            <groupId>org.springframework.boot</groupId>  
            <artifactId>spring-boot-starter-web</artifactId>  
        </dependency>  
  
        <!-- mongodb driver -->  
        <dependency>  
            <groupId>org.mongodb</groupId>  
            <artifactId>mongodb-driver</artifactId>  
            <version>3.2.2</version>  
        </dependency>  
    </dependencies>  
    <build>  
        <plugins>  
            <plugin>  
                <groupId>org.springframework.boot</groupId>  
                <artifactId>spring-boot-maven-plugin</artifactId>  
            </plugin>  
        </plugins>  
        <!-- <resources> <resource> <directory>src/main/resources</directory> <excludes>   
            <exclude>*.properties</exclude> </excludes> </resource> </resources> -->  
    </build>  
</project>  

2、application.properties

#由于我开启了自动配置,所以spring boot会自动加载mongodb,这里需要配置mongodb  
spring.data.mongodb.host=10.100.112.155  
spring.data.mongodb.port=20000  
spring.data.mongodb.database=test 

3、log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>  
<!--设置log4j2的自身log级别为warn -->  
<configuration status="warn">  
  
    <appenders>  
        <console name="Console" target="SYSTEM_OUT">  
            <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n" />  
        </console>  
  
        <RollingFile name="RollingFileInfo" fileName="logs/hpaasvc/info.log"  
            filePattern="${sys:user.home}/logs/hpaasvc/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log">  
            <Filters>  
                <ThresholdFilter level="INFO" />  
                <ThresholdFilter level="WARN" onMatch="DENY"  
                    onMismatch="NEUTRAL" />  
            </Filters>  
            <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n" />  
            <Policies>  
                <TimeBasedTriggeringPolicy />  
                <SizeBasedTriggeringPolicy size="100 MB" />  
            </Policies>  
        </RollingFile>  
  
        <RollingFile name="RollingFileWarn" fileName="logs/hpaasvc/warn.log"  
            filePattern="${sys:user.home}/logs/hpaasvc/$${date:yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.log">  
            <Filters>  
                <ThresholdFilter level="WARN" />  
                <ThresholdFilter level="ERROR" onMatch="DENY"  
                    onMismatch="NEUTRAL" />  
            </Filters>  
            <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n" />  
            <Policies>  
                <TimeBasedTriggeringPolicy />  
                <SizeBasedTriggeringPolicy size="100 MB" />  
            </Policies>  
        </RollingFile>  
  
        <RollingFile name="RollingFileError" fileName="logs/hpaasvc/error.log"  
            filePattern="${sys:user.home}/logs/hpaasvc/$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log">  
            <ThresholdFilter level="ERROR" />  
            <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n" />  
            <Policies>  
                <TimeBasedTriggeringPolicy />  
                <SizeBasedTriggeringPolicy size="100 MB" />  
            </Policies>  
        </RollingFile>  
  
        <!-- 配置mongdb appender -->  
        <NoSql name="mongoAppender">  
           <MongoDb databaseName="test" collectionName="jiongyi" server="10.100.112.155" port="20000"/>  
        </NoSql>  
    </appenders>  
  
    <loggers>  
        <!--过滤掉spring和hibernate的一些无用的debug信息 -->  
        <logger name="org.springframework" level="INFO">  
        </logger>  
        <logger name="org.hibernate" level="INFO">  
        </logger>  
          
        <root level="info">  
            <appender-ref ref="Console" />  
            <appender-ref ref="RollingFileInfo" />  
            <appender-ref ref="RollingFileWarn" />  
            <appender-ref ref="RollingFileError" />  
            <!-- 输出日志到mongodb -->  
            <appender-ref ref="mongoAppender" />  
        </root>  
      
    </loggers>  
  
</configuration>  
    原文作者:rejoice001
    原文地址: https://www.jianshu.com/p/367106c0108f
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞