项目实战-错误日志分析

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 错误日志分析

背景

       任何一个系统在使用的过程中会难免会出现一个错误,但是出现错误之后怎么能够更快速更准确的定位到问题的位置是关键的。这时候就用到了日志,但是更多的工程师只是急于完成功能的开发,而忽略了打印日志信息。其实打印日志信息和开发功能是同等重要的,只有我们在开发功能的时候把打印错误信息配置了,那在以后我们解决发生问题的时候才能提高定位问题的效率。打印日志就相当于程序在和我们说话一样,他会把哪里出现了问题以及为什么出现这种问题都告诉我们,我们解决问题就会更加的容易。如果没有配置错误值日的话,那我们解决问题就像大海捞针一样,非常困难没有头绪。

打印日志好处

1.快速定位问题的位置

2.追踪程序执行的过程

3.记录用户操作的审计日志

4.了解项目的运行状态

错误日志信息

       当我们看到一个错误信息的时候我们需要进一步的分析,就拿下面的错误信息来举例子吧

73b5cb8443414e039e1f721205532194.png

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2023-01-30 10:30:02.865 ERROR 9996 --- [           main] o.s.boot.SpringApplication               : Application run failed
org.springframework.context.ApplicationContextException: Failed to start bean 'webServerStartStop'; nested exception is java.lang.reflect.UndeclaredThrowableException
  at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:185)
  at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:53)
  at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:360)
  at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:158)
  at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:122)
  at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:895)
  at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:554)
  at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143)
  at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:755)
  at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747)
  at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:402)
  at org.springframework.boot.SpringApplication.run(SpringApplication.java:312)
  at org.springframework.boot.SpringApplication.run(SpringApplication.java:1247)
  at org.springframework.boot.SpringApplication.run(SpringApplication.java:1236)
  at com.tfjy.arprobackend.ArBackendApplication.main(ArBackendApplication.java:19)

日志分析过

1、从宏观出发,最先看见的红色部分是提示我们这是个什么样的错误,图中提示的是程序运行失败。

2、我们有了一个大概的了解之后看蓝色部分提示我们错误的类型是什么以及错误类型的地址什么,图中提示的错误类型是ApplicationContextException:应用程序上下文初始化期间引发异常。错误类型的地址是org.springframework.context。

3、看绿色的部分是针对错误类型的一个具体的错误描述:未能启动bean“webServerStartStop”;嵌套异常为java.lang.reflect.UndeclaedThrowableException。

4、看黄色区域的堆栈信息来确定是哪一行代码出现了问题,以及课程发生错误的代码。因为代码之间是有调用关系的,所以堆栈信息会把相关的代码都展示出来,一般处理最上面的一个就可以。


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
3天前
|
监控 安全 Linux
启用Linux防火墙日志记录和分析功能
为iptables启用日志记录对于监控进出流量至关重要
|
24天前
|
监控 应用服务中间件 定位技术
要统计Nginx的客户端IP,可以通过分析Nginx的访问日志文件来实现
要统计Nginx的客户端IP,可以通过分析Nginx的访问日志文件来实现
|
1月前
|
存储 SQL 监控
|
1月前
|
运维 监控 安全
|
1月前
|
监控 关系型数据库 MySQL
分析慢查询日志
【10月更文挑战第29天】分析慢查询日志
46 3
|
1月前
|
监控 关系型数据库 数据库
怎样分析慢查询日志?
【10月更文挑战第29天】怎样分析慢查询日志?
51 2
|
2月前
|
存储 缓存 关系型数据库
MySQL事务日志-Redo Log工作原理分析
事务的隔离性和原子性分别通过锁和事务日志实现,而持久性则依赖于事务日志中的`Redo Log`。在MySQL中,`Redo Log`确保已提交事务的数据能持久保存,即使系统崩溃也能通过重做日志恢复数据。其工作原理是记录数据在内存中的更改,待事务提交时写入磁盘。此外,`Redo Log`采用简单的物理日志格式和高效的顺序IO,确保快速提交。通过不同的落盘策略,可在性能和安全性之间做出权衡。
1712 14
|
2月前
|
存储 消息中间件 大数据
大数据-69 Kafka 高级特性 物理存储 实机查看分析 日志存储一篇详解
大数据-69 Kafka 高级特性 物理存储 实机查看分析 日志存储一篇详解
50 4
|
2月前
|
SQL 分布式计算 Hadoop
Hadoop-19 Flume Agent批量采集数据到HDFS集群 监听Hive的日志 操作则把记录写入到HDFS 方便后续分析
Hadoop-19 Flume Agent批量采集数据到HDFS集群 监听Hive的日志 操作则把记录写入到HDFS 方便后续分析
53 2
|
3月前
|
缓存 监控 算法
分析慢日志文件来优化 PHP 脚本的性能
分析慢日志文件来优化 PHP 脚本的性能

热门文章

最新文章