spring boot配置logback日誌輸出

文件目錄結構:


application.properties內容:

#默認使用application-local.properties,logback-my.xml中也將使用name="local"輸出日誌
spring.profiles.active=local

server.port=8090
#定義logback的名字,否則默認名字必須爲:logback-spring.xml
logging.config=classpath:logback-my.xml


application-local.properties內容:(只是強制改變一下端口號)

server.port=8080

logback-my.xml:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
	<property name="LOG_HOME"  value="e:/loghome"></property>
	
	<property name="consoleLayoutPattern"  
        value="%-20(%d{yyyyMMdd_HH:mm:ss.SSS} [%logger][%thread] [%-4relative]) [%X{hostName} %X{requestId} %X{processId} %X{service.timing} ][%level] %msg%n" />
	
	<property name="fileLayoutPattern"  
        value="%-20(%d{yyyyMMdd_HH:mm:ss.SSS} [%logger{10}][%thread] [%-4relative]) [%X{hostName} %X{requestId} %X{processId} %X{service.timing} ][%level] %msg%n" />

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>${consoleLayoutPattern}</pattern>
        </layout>
    </appender>

    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_HOME}/my_info.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/my_info.log.%d{yyyy-MM-dd}</fileNamePattern>
            <maxHistory>10</maxHistory>
        </rollingPolicy>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>${fileLayoutPattern}</Pattern>
        </layout>
    </appender>

    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_HOME}/my_error.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/my_error.log.%d{yyyy-MM-dd}</fileNamePattern>
            <maxHistory>10</maxHistory>
        </rollingPolicy>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>${fileLayoutPattern}</Pattern>
        </layout>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>error</level>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

	<!-- 定義本地環境日誌級別 -->
    <springProfile name="local">
        <logger name="com.my" level="INFO"/><!-- 定義將com.my包下的最低級別日誌信息 -->
        <root>
        	<level value="DEBUG" /> <!-- 系統全局日誌輸出最低級別,但不包括com.my包 -->
            <appender-ref ref="STDOUT" />
        </root>
    </springProfile>

	<!-- 定義測試環境日誌級別 -->
	<springProfile name="qa">
        <logger name="com.my" level="DEBUG"/>
        <root>
            <level value="INFO" />
            <appender-ref ref="STDOUT" />
        </root>
    </springProfile>
    
   	<!--  定義線上環境日誌級別  --> 
    <springProfile name="online">
        <root>
            <level value="INFO" />
            <appender-ref ref="INFO_FILE" />
            <appender-ref ref="ERROR_FILE" />
        </root>
    </springProfile>

</configuration>

indexcontroller:

package com.my.controller;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.my.bean.User;

@RestController
@RequestMapping("index")
public class IndexController {
	
	private static Logger log = LoggerFactory.getLogger(IndexController.class);
	
//	@Value(value = "${tanlei.secret}")
	private String secret;
	
	@RequestMapping
	public String index() {
		return "hello world";
	}

	@RequestMapping("get")
	public Map<String, Object> get(String name) {
		log.debug("xixi");
		log.info("哈哈哈");
		log.error("hehe");
		//System.out.println(secret);
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("name", name);
		map.put("id", 1);
		return map;
	}
	
	@RequestMapping(value = "/get/{id}/{name}")
	public User getUser(@PathVariable int id, @PathVariable String name) {
		User user = new User();
		user.setId(id);
		user.setName(name);
		user.setDate(new Date());
		return user;
	}
	
}

啓動類:SrpingBootDemo1Application.java

@SpringBootApplication
public class SrpingBootDemo1Application {
	
	public static void main(String[] args) {
		SpringApplication.run(SrpingBootDemo1Application.class, args);
	}
}


pom.xml

<?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>

	<groupId>com.my</groupId>
	<artifactId>bootweb</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>war</packaging>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.4.0.RELEASE</version>
		<relativePath /> <!-- lookup parent from repository -->
	</parent>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
	</properties>

	<dependencies>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-tomcat</artifactId>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.apache.tomcat.embed</groupId>
			<artifactId>tomcat-embed-jasper</artifactId>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jstl</artifactId>
		</dependency>

		<dependency>
			<groupId>org.webjars</groupId>
			<artifactId>jquery</artifactId>
			<version>2.1.4</version>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				
				<configuration>
					<finalName>root</finalName>
				</configuration>
			</plugin>
		</plugins>
	</build>


</project>



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章