spring boot整合log4j2輸出日誌到mongodb

分類:存儲 時間:2017-02-17

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>



Tags: version spring parent

文章來源:


ads
ads

相關文章
ads

相關文章

ad