SpringBoot記錄日志


SpringBoot記錄日志

制作人:全心全意

使用logback記錄日志

springboot已經默認整合好了logback,日志輸出文件在當前項目路徑log目錄下

引入依賴包

<dependency>
	<groupId>org.projectlombok</groupId>
	<artifactId>lombok</artifactId>
</dependency>

  

logback配置

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
	<!-- 本文主要輸出日志為控制台日志,系統日志,sql日志,異常日志 -->
	<!-- %m輸出的信息,%p日志級別,%t線程名,%d日期,%c類的全名,,, -->
	<!-- 控制台 -->
	<appender name="console"
		class="ch.qos.logback.core.ConsoleAppender">
		<encoder>
			<pattern>%d %p (%file:%line\)- %m%n</pattern>
			<charset>UTF-8</charset>
		</encoder>
	</appender>


	<!-- 系統info級別日志 -->
	<!-- <File> 日志目錄,沒有會自動創建 -->
	<!-- <rollingPolicy>日志策略,每天建立一個日志文件,或者當天的日志文件超過64MB時 -->
	<!-- encoder 日志編碼及輸出格式 -->
	<appender name="fileLog"
		class="ch.qos.logback.core.rolling.RollingFileAppender">
		<File>log/file/fileLog.log</File>
		<rollingPolicy
			class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>log/file/fileLog.log.%d.%i</fileNamePattern>
			<timeBasedFileNamingAndTriggeringPolicy
				class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
				<maxFileSize>64MB</maxFileSize>
			</timeBasedFileNamingAndTriggeringPolicy>
		</rollingPolicy>
		<encoder>
			<pattern>
				%d %p (%file:%line\)- %m%n
			</pattern>
			<charset>UTF-8</charset>
		</encoder>
	</appender>

	<!-- sql日志 -->
	<appender name="sqlFile"
		class="ch.qos.logback.core.rolling.RollingFileAppender">
		<File>log/sql/sqlFile.log</File>
		<rollingPolicy
			class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>log/sql/sqlFile.log.%d.%i</fileNamePattern>
			<timeBasedFileNamingAndTriggeringPolicy
				class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
				<maxFileSize>64MB</maxFileSize>
			</timeBasedFileNamingAndTriggeringPolicy>
		</rollingPolicy>
		<encoder>
			<!-- 用來設置日志的輸入格式 -->
			<pattern>
				%d %p (%file:%line\)- %m%n
			</pattern>
			<charset>UTF-8</charset>
			<!-- 此處設置字符集 -->
		</encoder>
	</appender>


	<!-- 異常日志 -->
	<appender name="errorFile"
		class="ch.qos.logback.core.rolling.RollingFileAppender">
		<File>log/error/errorFile.log</File>
		<rollingPolicy
			class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>log/error/errorFile.log.%d.%i</fileNamePattern>
			<timeBasedFileNamingAndTriggeringPolicy
				class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
				<maxFileSize>64 MB</maxFileSize>
			</timeBasedFileNamingAndTriggeringPolicy>
		</rollingPolicy>
		<encoder>
			<!-- 用來設置日志的輸入格式 -->
			<pattern>
				%d %p (%file:%line\)- %m%n
			</pattern>
			<charset>UTF-8</charset>
			<!-- 此處設置字符集 -->
		</encoder>
		<!-- 日志都在這里過濾error 使用try{} catch(Exception e){}的異常無法寫入日志 -->
		<!-- 可以在catch中調用logger.error()方法手動寫入日志 -->
		<filter class="ch.qos.logback.classic.filter.LevelFilter">
			<level>ERROR</level>
			<onMatch>ACCEPT</onMatch>
			<onMismatch>DENY</onMismatch>
		</filter>
	</appender>

	<!-- 日志輸出級別 -->
	<!-- ALL\DEBUG\INFO\WARN\ERROR\FATAL\OFF -->
	<!-- 打印info級別日志,分別在控制台,fileLog,errorFile輸出 -->
	<!-- 異常日志在上面由過濾器過濾出ERROR日志打印 -->
	<root level="INFO">
		<appender-ref ref="fileLog" />
		<appender-ref ref="console" />
		<appender-ref ref="errorFile" />
	</root>

	<!-- 打印sql至sqlFile文件 -->
	<logger name="com.dolphin.mapper" level="DEBUG"
		additivity="false">
		<appender-ref ref="console" />
		<appender-ref ref="sqlFile" />
	</logger>
</configuration>

  

引入logback配置文件(application.yml)

logging:
  config: classpath:log/logback.xml

  

測試日志接口

package com.zq.main.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import lombok.extern.slf4j.Slf4j;

@RestController
@Slf4j		//日志的注解
public class Mylogback {
	@RequestMapping("/getlog")
	public String getlog(String name,Integer age) {
		log.info("name:{},age:{}",name,age);
		return "111";
	}
}

  

日志級別

  ALL:最低等級,用於打開所有日志記錄
  DEBUG:主要用於開發過程中打印一些運行信息
  INFO:用於生產環境輸出程序運行的一些重要信息,但是不能濫用,避免打印過多的日志
  ERROR:打印錯誤和異常信息(不影響系統繼續運行的異常和錯誤),如果不想輸出太多日志,可以使用此級別
  OFF:最高級別,用於關閉所有日志記錄

 

 

springboot使用log4j記錄日志

機制:如果一條日志信息的級別大於等於配置文件的級別,就記錄。

trace:追蹤,就是程序推進一下,可以寫個trace輸出
debug:調試,一般作為最低級別,trace基本不用
info:輸出重要信息,使用較多
warn:警告,有些信息不是錯誤信息,但也要給程序員一些提示
error:錯誤信息,用的很多
fatal:致命錯誤

 

輸出源:

  CONSOLE(輸出到控制台)
  FILE(輸出到文件)

格式:

  SimpleLayout:以簡單的形式顯示
  HTMLLayout:以HTML表格顯示

 

引入依賴包

<dependency>
	<groupId>org.projectlombok</groupId>
	<artifactId>lombok</artifactId>
</dependency>

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter</artifactId>
	<!-- 排除自帶的logback依賴 -->
	<exclusions>
		<exclusion>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-logging</artifactId>
		</exclusion>
	</exclusions>
</dependency>

<!-- springboot-log4j -->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-log4j</artifactId>
	<version>1.3.8.RELEASE</version>
</dependency>

  

新建log4j.properties配置文件

log4j.rootLogger=DEBUG,error,CONSOLE,info
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n

log4j.logger.info=info
log4j.appender.info=org.apache.log4j.DailyRollingFileAppender
log4j.appender.info.layout=org.apache.log4j.PatternLayout
log4j.appender.info.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n
log4j.appender.info.datePattern='.'yyyy-MM-dd
log4j.appender.info.Threshold=info
log4j.appender.info.append=true
log4j.appender.info.File=F:/log/info.log	#INFO重要輸出日志存放位置

log4j.logger.error=error
log4j.appender.error=org.apache.log4j.DailyRollingFileAppender
log4j.appender.error.layout=org.apache.log4j.PatternLayout
log4j.appender.error.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n
log4j.appender.error.datePattern='.'yyyy-MM-dd
log4j.appender.error.Threshold=error
log4j.appender.error.append=true
log4j.appender.error.File=F:/log/error.log	#錯誤日志存放位置

log4j.logger.DEBUG=DEBUG
log4j.appender.DEBUG=org.apache.log4j.DailyRollingFileAppender
log4j.appender.DEBUG.layout=org.apache.log4j.PatternLayout
log4j.appender.DEBUG.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n
log4j.appender.DEBUG.datePattern='.'yyyy-MM-dd
log4j.appender.DEBUG.Threshold=DEBUG
log4j.appender.DEBUG.append=true
log4j.appender.DEBUG.File=F:/log/DEBUG.log	#DEBUG日志存放位置

  

編輯配置文件application.yml引入log4j配置

logging:
  config: classpath:log4j.properties	

  

測試日志接口

package com.zq.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import lombok.extern.slf4j.Slf4j;

@RestController
@Slf4j // 日志的注解
public class Mylogback {
	@RequestMapping("/getlog4j")
	public String getlog4j(String userName, Integer age) {
		log.info("name:{},age:{}", userName, age);
		return userName;
	}
}

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM