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;
	}
}

  

 

posted @ 2020-12-22 22:49  全心全意_运维  阅读(807)  评论(0编辑  收藏  举报