gpt4 book ai didi

java - 记录良好实践

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:22:59 26 4
gpt4 key购买 nike

我使用 sl4j/logback 作为日志框架。我不确定记录错误的正确方法。即,假设 e 是我要记录的异常,我总是在以下两者之间犹豫:

  1. logger.error("Something bad happened: {}\nError: {}", someInfo, e.getMessage());

    我知道这不是好的做法,因为堆栈跟踪丢失了 - 不太好理解发生了什么。

  2. logger.error("Something bad happened: {}\nError: {}", someInfo, e.getMessage(), e);

    同时使用 e.getMessage()e似乎是多余的,尽管我不知道 e.getMessage() 是否有可能可能包含如果我使用则看不到的额外信息:

  3. logger.error("Something bad happened: {}", someInfo, e);

    这是我通常使用的语法 - 但我想确保我没有遗漏任何内容。

最佳答案

我通常使用第二个,尽管我从不将日志的一行分成两行 (\n),尽管在打印堆栈跟踪时,这无关紧要(在所有其他情况下,它会产生太多的视觉熵当您的日志变得非常庞大时)。

为什么我使用数字 2?

我想立即在第一行看到消息,因为这是告诉我发生了什么的第一件事。有些可能是意料之中的,我可以安全地跳过它们,有些可能不是。

如果我需要检查到底发生了什么,我会更好地查看堆栈跟踪。

我认为 3 号也不错,因为无论如何您都会获得所需的信息。切勿使用选项 1。

顺便说一句,只是一个特定的观点,说错误行上发生了一些不好的事情有点多余;)

关于java - 记录良好实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9887972/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com