级别 | 说明 | 例子 |
---|---|---|
Error | 错误已经发生了,这是毫无疑问的。错误的来源可能是在外部,但不管怎样都需要看一下是怎么回事。 可以用这个级别来表示需要引起人们注意(大多数时候需要采取行动)的错误。大多数难以优雅处理的异常都属于 Error 范畴。 | 1、无法找到"crucial.dat"文件 2、错误的处理数据: <Exception>[堆栈追踪或后续的调试消息] 3、<Exception>在连接数据库时在连接数据库时 |
Warn | 错误有可能已经发生了。我只是一条日志消息,无法分析到底发生了什么,或许需要其他人来看看是不是有问题。 这可能是一个平行空间里的错误。它可能是当前或未来潜在问题(比如响应速度慢、连接断开、内存吃紧等等)的预兆,也可能是程序在处理某些任务时出现错误(但可能不一会再发生类似的情况)。 | 1、连接关闭,在 2 秒后重新连接 2、无法找到"logging.conf"[在配置文件中指定的],回到默认配置 3、30 秒后尝试连接超时 |
Info | 通知用户一个操作或状态发生了变化。别紧张,继续手头的活。 Info 可以说是(一般的非技术)用户可以接触到的最“啰嗦”的日志级别。如果有人把它们大声念给你听,你也不会介意,这是你最乐于见到的日志记录。它不会包含很多技术细节,可能只包含普通用户会关注的信息(比如文件名等)。 | 1、代理初始化完毕 2、加载存档"yeti02" 3、进入高速模式 4、当前目录是"/tmp" 5、上行线路已建立 |
Debug | 如果你能读懂这个级别的日志,那么你离程序已经很近了。 在转储程序运行流程和其他技术问题时,应该使用 Debug 级别的日志。除非日志太多了(在这种情况下使用 Trace 级别更合适)或者更适合使用更高级别的日志,否则 Debug 日志是非常值得保留的,毕竟是你自己在代码中记录这些日志的。如果和其他的 Debug 或更高级别的消息重叠,而且没有包含更多的信息,那么可以考虑将其删除。 | 1、从"/etc/octarine/octarine.conf"读取配置 2、使用"/home/aib/.octarinerc"覆盖配置 3、分析完成,创建图… 4、作为”user”连接到服务器:4242 5、发送两条消息 6、渲染时故障: 7、Foo 0.990 秒 8、Bar 42.009 秒 |
Trace | 这些技术细节可能与程序不是很相干,除非你正好需要它们。 ’Trace 的信息是更加具体的调试信息,你可能并不想看到它(除非你向保存日志的人卖硬盘的时候需要)。它会包含比如说调用了什么函数(函数名),或是和客户端交换了什么网络包等内容。它善于找到一些低级错误,但通常你可以在调试消息中缩小范围,找到问题。 大多数 Trace 消息包含了你已经知道的信息(Debug 消息中说了是“登录”,所以这肯定是登录相关的数据包),所以可能对你不是很有用,除非你的假设是错误的。(”它会不会是登出消息?!“、”这里应该调用 foo。为什么 foo 的 Trace 信息没有打印出来呢?”) | 1、调用参数 ("baz", "bar", 42) 函数”foo” 2、->GET / HTTP/1.1nHost: localhostnn 3、收到: <?xml version="1.0" encoding="UTF-8" ?>n n [...] |
Fatal | 发生了一个致命错误,我们要退出了。祝你好运! 它应该比 Error 更严重,但使用它的频率比 Trace 还少,所以我把它放在文章的最后。顾名思义,致命错误表示这种情况的发生将导致程序无法继续运行。因此,给它们专门设置一个级别没什么意义。但是致命的错误也可能是常见和可恢复的(比如重启就能解决),因此仍然值得一提。 | 1、内存不足 2、无法分配 65536 字节的磁盘空间 3、许可过期,切换到免费软件模式 |
日志的分级
于 2022-05-13 10:07:08 首次发布