logger异常日志要点总结

简介: Logger异常日志,企业项目中非常重要的一步,在系统调试、出错时,能够快速排查,修复。以下是关于异常日志使用的关键点。

Logger异常日志,企业项目中非常重要的一步,在系统调试、出错时,能够快速排查,修复。以下是关于异常日志使用的关键点。

1、真正有意义的Logger

一些用户异常信息,是返回到View层显示给用户看的,那么在前端可能就能够完成处理(例如:提示两次输入的密码不一致),要么根本不是异常(例如:提示用户没有注册)。这样的用户异常不应该出现在异常日志中,而需要记录的是技术性异常(例如:“服务器编译文件未找到”),反映真正有意义的异常到logger中。

2、察觉需要捕获异常的代码块,进行捕获
后端在进行数据更新的时候, updat/savae、insert、delete没有正确执行,此时,用try…catch去捕获异常。

//使用日志类logger
import org.apache.log4j.Logger;

public class ActAreaServiceImpl implements ActAreaService{
//在编写类时,得到ActAreaServiceImpl.class产生的异常日志
    private static final Logger logger = Logger.getLogger(ActAreaServiceImpl.class);
...

    try{
    //可能抛出异常的代码
    //Service层多数情况是 updat/savae、insert、delete没有正确执行
    }catch(Exception e) {
        //捕获异常并在日志中打印出来
       logger.error(e.getMessage(), e);
}

3、合理使用Logger框架的异常信息输出方法
运行中异常,错误信息异常,debug调试异常,Root时异常,了解、知道和会使用在常用的异常方法。
一般是logger.error()。

4、异常追踪堆栈的关键信息
异常框架在处理异常时,会保证打印输出所有相关的堆栈追踪信息,异常的所有原因记录在日志文件中,所以在调试代码时,最上层的异常就是程序异常的起因,这个信息是最重要的。

5、错误:记录日志后又向外抛出
记录日志后又重新抛出异常叫做——异常反模式(anti-pattern),不要这么做,冗余重复。

    try{
    ...
    } catch (Exception e) {
            logger.error(e.getMessage(), e);
            throw new RuntimeException(e.getMessage());
        }

6、任何时候都不要使用System.out或者System.err记录来记录logger
Java发展至今,已经有非常多的日志框架了,要相信成熟的架构体系的异常处理。不成熟的程序员异常处理会有很多逻辑漏洞,不合理的地方,使用框架比你自己处理要更好。

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
Java 微服务 Spring
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录——使用Logger在项目中打印日志
本文介绍了如何在项目中使用Logger打印日志。通过SLF4J和Logback,可设置不同日志级别(如DEBUG、INFO、WARN、ERROR)并支持占位符输出动态信息。示例代码展示了日志在控制器中的应用,说明了日志配置对问题排查的重要性。附课程源码下载链接供实践参考。
1421 0
|
11月前
|
运维 监控 安全
Syslog 日志分析与异常检测技巧
系统日志蕴含设备运行关键信息,但分析提取颇具挑战。本文详解从命令行工具(如 Grep、Tail、Awk)到专业软件(如 EventLog Analyzer)的全流程日志分析技巧,助你高效挖掘 Syslog 价值,提升运维与安全响应能力。
658 4
|
SQL druid Oracle
【YashanDB知识库】yasdb jdbc驱动集成druid连接池,业务(java)日志中有token IDENTIFIER start异常
客户Java日志中出现异常,影响Druid的merge SQL功能(将SQL字面量替换为绑定变量以统计性能),但不影响正常业务流程。原因是Druid在merge SQL时传入null作为dbType,导致无法解析递归查询中的`start`关键字。
|
存储 人工智能 JSON
RAG Logger:专为检索增强生成(RAG)应用设计的开源日志工具,支持查询跟踪、性能监控
RAG Logger 是一款专为检索增强生成(RAG)应用设计的开源日志工具,支持查询跟踪、检索结果记录、LLM 交互记录和性能监控等功能。
679 7
RAG Logger:专为检索增强生成(RAG)应用设计的开源日志工具,支持查询跟踪、性能监控
|
测试技术 开发工具 git
写了BUG还想跑——闲鱼异常日志问题自动追踪-定位-分发机制
为了高效地发现、定位和解决预发问题,闲鱼团队研发了一套异常日志问题自动追踪-定位-分发机制。这套机制通过自动化手段,实现了异常日志的定时扫描、精准定位和自动分发,显著降低了开发和测试的成本,提高了问题解决的效率。
669 15
写了BUG还想跑——闲鱼异常日志问题自动追踪-定位-分发机制
|
人工智能 Oracle Java
解决 Java 打印日志吞异常堆栈的问题
前几天有同学找我查一个空指针问题,Java 打印日志时,异常堆栈信息被吞了,导致定位不到出问题的地方。
467 2
日志框架log4j打印异常堆栈信息携带traceId,方便接口异常排查
日常项目运行日志,异常栈打印是不带traceId,导致排查问题查找异常栈很麻烦。
|
JSON 缓存 fastjson
一行日志引发的系统异常
本文记录了一行日志引发的系统异常以及作者解决问题的思路。
332 11
|
Java 应用服务中间件 HSF
Java应用结构规范问题之AllLoggers接口获取异常日志的Logger实例的问题如何解决
Java应用结构规范问题之AllLoggers接口获取异常日志的Logger实例的问题如何解决
199 3
|
监控 安全 Apache
什么是Apache日志?为什么Apache日志分析很重要?
Apache是全球广泛使用的Web服务器软件,支持超过30%的活跃网站。它通过接收和处理HTTP请求,与后端服务器通信,返回响应并记录日志,确保网页请求的快速准确处理。Apache日志分为访问日志和错误日志,对提升用户体验、保障安全及优化性能至关重要。EventLog Analyzer等工具可有效管理和分析这些日志,增强Web服务的安全性和可靠性。
597 9