统一日志处理 | 学习笔记

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 快速学习 统一日志处理

开发者学堂课程【微服务+全栈在线教育实战项目演练(SpringCloud Alibaba+SpringBoot)统一日志处理】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/667/detail/11296


统一日志处理


内容简介:

一、什么叫日志?

二、配置日志级别


一、什么叫日志?

在控制台做的输出叫日志,通过日志就可以看到当前系统或者程序的运行状态以及更好定位到哪里出了问题


二、、配置日志级别(不同的级别显示的内容是有区别的,它只显示当前级别中的内容)

1.日志记录器(Logger)的行为是分等级的。

如下表所示:

分为: OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL(INFO 包含 WARN 中的内容,DEBUG 包含 OFF、FATAL、ERROR、WARN、INFO 中的内容,越往后包含的东西越多)

(1) 默认情况下,spring boot 从控制台打印出来的日志级别只有 INFO 及以上级别,可以配置日志级别。

(2) 在工程中,默认的级别是 INFO,只显示 INFO 信息,如果想要看到更多的内容,则换成 DEBUG,若要换信息,则需要在配置文件中加配置,也就是设置日志级别: logging. level. root = WARN

2.日志不仅可以输出到控制台,也可以输出到文件中,使用日志工具,

如:log4j、Logback 日志工具

(1)怎样用 Logback 日志工具

第一步:删除 application.properties 日志配置

#设置日志级别

#logging.level.root=INFO

#mybatis 日志

#mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutlmpl

第二步:在 resources 中创建 logback-spring.xml

< ! -- 生产环境:输出到文件 -- >

<springProfile name= "pro" >

root level=" INFO" >

<appender-ref ref= "CONSOLE" />

<appender-ref ref= "DEBUG_FILE" />

<appender-ref ref= "INFO_ FILE" />

<appender-ref ref= "ERROR_FILE" />

<appender-ref ref= "WARN_FILE" />

</root>

</springProfile>

<configuration>

文件中的内容:

<property name = "log.path" value = "D:/guli_1010/edu" />→ 把日志输出到文件中,文件在D盘的guli中,设置日志输出的路径

日志的格式:

value = "%yellow (%date {yyy-MM-dd HH:mm:ss}) |%highlight(%-5level) |%blue (%thread)

输出到文件:

< !-- 时间滚动输出 leve1为 INFO 日志 -- >

<appender name= "INFO_FILE" class= 'ch.qos.logback.core.rolling. RollingFileAppender" >

< !-- 正在记录的日志文件的路径及文件名 -- >

<file>${log. path}/log_info.log</file>

< !-- 日志文件输出格式 -- >

<encoder>

<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thpread] %-5level %logser{50} - %msg%n</pattern>

<charset>UTF-8</charset>

</encoder>

< !-- 日志记录器的滚动策略,按日期,按大小记录 -- >

<rollingPolicy class = "ch.qos.logback.core.rolling.TimeBasedRollingPolicy" >

< !-- 每天日志归档路径以及格式 -- >

<fileNamePattern>${log.path}/info/log-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern><timeBasedFileNamingAndTriggeringPolicyclass="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP" >

<maxFileSize>100MB</maxFileSize>

</timeBasedFileNamingAndTriggeringPolicy>

< !-- 日志文件保留天数 -- >

<maxHistory)15</maxHistory>

</rollingPolicy>

< !-- 此日志文件只记录 info 级别的 -- >

<filter class = "ch.qos.logback.classic.filter.LevelFilter" >

<level>INF0</level>

<onMatch>ACCEPT</onMatch>

<onMismatch>DENY</onMismatch)

</filter>

</appender>

< !-- 开发环境:打印控制台 -- >

<springProfile name = "dev" >

< !-- 可以输出项目中的 debug 日志,包括 mybatis 的 sq1日志 -- >

<logger name = "com. guli" level= "INFO" />

< !--

root 节点是必选节点,用来指定最基础的日志输出级别,只有一个 leve1属性

level:

用来设置打印级别,大小写无关:  

TRACE,DEBUG,INFO,WARN,ERROR, ALL 和 0FF,默认是 DEBUG 可以包含零个或多个 appender 元素。

-- >

<root level=" INFO" >

<appender-ref ref= "CONSOLE" />

<appender-ref ref= "DEBUG_FILE" />

<appender-ref ref= "INFO_ FILE" />

<appender-ref ref= "ERROR_FILE" />

<appender-ref ref= "WARN_FILE" />

</root>

</springProfile>

< ! -- 生产环境:输出到文件 -- >

<springProfile name= "pro" >

<root level=" INFO" >

<appender-ref ref= "CONSOLE" />

<appender-ref ref= "DEBUG_FILE" />

<appender-ref ref= "INFO_ FILE" />

<appender-ref ref= "ERROR_FILE" />

<appender-ref ref= "WARN_FILE" />

</root>

</springProfile>

<configuration>

3.如果程序运行出现异常,把异常信息输出到文件中

在类上加注解

@Slf4j

public class GlobalExceptionHandler {

//自定义异常

@ExceptionHandler(GuliException.class)

@ResponseBody //为了返回数据

public R error(GuliException e) {

log. error(e.getMessage()) :

e.printStackTrace():

执行,打开 swagger,

点击/eduserice/teacher/pageTeacher/{current}/{limit}

current : 1

limit : 2

点击 try it out!

结果:

{

"suecess": false,

"code": 20001 ,

"message": "执行了自定义异常处理....",

"data": ()

}

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
3月前
|
存储 数据采集 JavaScript
深入理解数仓开发(一)数据技术篇之日志采集
深入理解数仓开发(一)数据技术篇之日志采集
|
4月前
|
存储 监控 Cloud Native
|
1月前
|
存储 Kubernetes 数据可视化
在K8S中,如何使用 EFK 实现日志的统一管理?
在K8S中,如何使用 EFK 实现日志的统一管理?
|
3月前
|
存储 监控 Cloud Native
云原生日志处理流程
【6月更文挑战第14天】云原生平台中的日志处理包括9个步骤:收集、ETL、索引、存储、检索、关联、可视化、分析和报告。
|
10月前
|
监控
135 日志监控告警系统案例(数据模型设计)
135 日志监控告警系统案例(数据模型设计)
130 0
|
XML Java 数据库
JUL 日志 - 最简单易用的Java日志框架
JUL是最容易上手的Java日志框架,最适合初学者,本文一篇教会如何使用
282 0
JUL 日志  - 最简单易用的Java日志框架
|
运维 监控 网络协议
统一运维监控平台设计思路| 学习笔记
快速学习统一运维监控平台设计思路。
324 0
统一运维监控平台设计思路| 学习笔记
|
数据采集 运维 监控
分布式统一监控系统架构图与设计思路| 学习笔记
快速学习分布式统一监控系统架构图与设计思路。
426 0
分布式统一监控系统架构图与设计思路| 学习笔记
|
Java 微服务 Spring
微服务项目:尚融宝(11)(后端接口:统一日志处理)
默认情况下,spring boot从控制台打印出来的日志级别只有INFO及以上级别,可以配置日志级别
微服务项目:尚融宝(11)(后端接口:统一日志处理)
|
运维 监控 网络协议
统一运维监控平台设计思路
一、 监控平台的思路 二、 ganglia的安装 三、 yum方式安装ganglia
统一运维监控平台设计思路