美文网首页JAVA技术文章
spring boot整合log4j2输出日志到mongodb

spring boot整合log4j2输出日志到mongodb

作者: rejoice001 | 来源:发表于2017-12-06 21:59 被阅读933次

    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>  
    

    相关文章

      网友评论

        本文标题:spring boot整合log4j2输出日志到mongodb

        本文链接:https://www.haomeiwen.com/subject/pwfrixtx.html