目录
背景介绍
任何一个系统在使用的过程中会难免会出现一个错误,但是出现错误之后怎么能够更快速更准确的定位到问题的位置是关键的。这时候就用到了日志,但是更多的工程师只是急于完成功能的开发,而忽略了打印日志信息。其实打印日志信息和开发功能是同等重要的,只有我们在开发功能的时候把打印错误信息配置了,那在以后我们解决发生问题的时候才能提高定位问题的效率。打印日志就相当于程序在和我们说话一样,他会把哪里出现了问题以及为什么出现这种问题都告诉我们,我们解决问题就会更加的容易。如果没有配置错误值日的话,那我们解决问题就像大海捞针一样,非常困难没有头绪。
打印日志好处
1.快速定位问题的位置
2.追踪程序执行的过程
3.记录用户操作的审计日志
4.了解项目的运行状态
日志分析
错误日志信息
当我们看到一个错误信息的时候我们需要进一步的分析,就拿下面的错误信息来举例子吧
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、看黄色区域的堆栈信息来确定是哪一行代码出现了问题,以及课程发生错误的代码。因为代码之间是有调用关系的,所以堆栈信息会把相关的代码都展示出来,一般处理最上面的一个就可以。
总结提升
日志分析是指对系统、应用程序或网络设备生成的日志进行收集、解析和分析的过程。通过对日志进行分析,可以获取有关系统运行状态、用户行为、错误和异常等信息,从而用于故障排除、性能优化、安全监控和业务决策等方面。
以下是对日志分析的总结:
-
目的:日志分析的主要目的是通过对日志数据的分析,从中提取有价值的信息,帮助解决问题、改进系统性能、提升用户体验、增强安全性等。
-
收集:日志收集是指将系统、应用程序或网络设备生成的日志数据收集到集中的存储位置。可以使用各种工具和技术,如日志代理、日志收集器、日志聚合器等,来实现日志的收集。
-
解析:日志解析是将原始的日志数据进行结构化和解析,以便后续的分析和查询。解析可以根据日志的格式、字段和规则进行,可以使用正则表达式、日志解析器等工具来实现。
-
分析:日志分析是对解析后的日志数据进行深入分析,以获取有关系统性能、用户行为、错误和异常等方面的洞察。可以使用各种技术和方法,如数据挖掘、机器学习、统计分析等,来实现日志数据的分析。
-
可视化:日志分析的结果通常以可视化的方式呈现,以便用户更直观地理解和利用分析结果。可以使用各种工具和技术,如数据可视化工具、仪表盘、报表等,来实现日志分析结果的可视化。
-
应用:日志分析的结果可以应用于多个方面,如故障排除、性能优化、安全监控、业务决策等。通过分析日志数据,可以发现系统中的问题和瓶颈,提升系统性能和用户体验,监控系统的安全性,以及为业务决策提供数据支持。
总而言之,日志分析是一个重要的技术和工具,可以帮助我们更好地理解和利用系统、应用程序或网络设备生成的日志数据。通过对日志的收集、解析和分析,可以获得有关系统运行状态、用户行为、错误和异常等方面的信息,从而实现故障排除、性能优化、安全监控和业务决策等目的。