我已经查看了大量的互联网资源,但我仍然没有找到一个很好的信息来源,以了解什么是用于跟踪和调试。这是在Rust跟踪中,所以跟踪日志上没有堆栈跟踪。这只是另一个日志级别。我什么时候应该使用TRACE而不是调试?
yqyhoc1h1#
Rust log、tracing和其他许多日志级别如下。这里是什么时候使用each,**与示例。
log
tracing
*FATAL-Rust中不存在这个,因为你panic!(),但我也可以包括它。
panic!()
您应该使用FATAL来记录将要使应用程序崩溃的错误。示例:FATAL: Syntax error in configuration file. Aborting.
FATAL: Syntax error in configuration file. Aborting.
ERROR-您应该使用ERROR来记录某些特定任务中的错误*。**这些错误会导致任务失败,但这并不是世界末日。
示例:ERROR: Broken pipe responding to request
ERROR: Broken pipe responding to request
WARN-您应该使用WARN来记录恢复的错误*。**例如,您正在再次重试的事情(如果再次失败,您给予了,它应该最终是一个ERROR)*INFO-您应该使用INFO来记录信息性消息,如运行时重要的主要状态更新:
INFO: Server listening on port 80
INFO: Logged into <API> as <USER>.
INFO: Completed daily database expiration task.
DEBUG
1条答案
按热度按时间yqyhoc1h1#
Rust
log
、tracing
和其他许多日志级别如下。这里是什么时候使用each,**与示例。
*FATAL-Rust中不存在这个,因为你
panic!()
,但我也可以包括它。您应该使用FATAL来记录将要使应用程序崩溃的错误。
示例:
FATAL: Syntax error in configuration file. Aborting.
ERROR-您应该使用ERROR来记录某些特定任务中的错误*。**这些错误会导致任务失败,但这并不是世界末日。
示例:
ERROR: Broken pipe responding to request
WARN-您应该使用WARN来记录恢复的错误*。**例如,您正在再次重试的事情(如果再次失败,您给予了,它应该最终是一个ERROR)
*INFO-您应该使用INFO来记录信息性消息,如运行时重要的主要状态更新:
INFO: Server listening on port 80
个INFO: Logged into <API> as <USER>.
个INFO: Completed daily database expiration task.
个DEBUG
日志基本上应该始终只记录变量或决策。每当需要记录变量时,或者在重大决策之后,如“用户做了这件事”或“选择使用分块发送”,你可以使用调试日志跟踪-跟踪日志纯粹是*“我在这里!“logs。它们NOT**用在块的开头或结尾,就像if语句一样,表示“嘿,我做了这个选择!”,它们表示“嘿,我正在发出API请求……完了!”