Logging 如何设计日志级名称。以反映使用频率?
我要建立一个很棒的系统。关于日志级命名的思考 让我想知道Logging 如何设计日志级名称。以反映使用频率?,logging,Logging,我要建立一个很棒的系统。关于日志级命名的思考 让我想知道 我可以选择名字吗?这样管理员和开发人员就知道是哪个名字了 使用。不使用文档 如果日志级别也反映出它们在日志中出现的频率,那就好了 例如: 初始化/关闭-(出现一次) FUNC_调用-(出现频繁,例如在循环中) 跟踪-(在函数中多次) 现在,系统管理员永远不会在生产中打开跟踪日志记录。他可以安全地打开初始化/关闭。如果系统流量低,则调用FUNC_ 这个设计有什么问题 您会使用什么名称来反映频率 (我知道警告、信息和错误。)日志的问题是确
- 初始化/关闭-(出现一次)
- FUNC_调用-(出现频繁,例如在循环中)
- 跟踪-(在函数中多次)
(我知道警告、信息和错误。)日志的问题是确保它们实际上不会显示太多,因为这是使系统完全停止的最可靠的方法。
(日志文件已满,由于要生成一些复杂的日志消息,处理速度要慢得多,日志条件反复出现,…) 然后,看起来FUNC_CALL和TRACE是预生产步骤的好名称,当您出于测试原因希望看到具体执行了什么时 但在生产中,应该只保留与功能相关的日志(通常是关于功能特性的警告和严重日志),甚至那些日志也可能是危险的(尤其是数千个实例的循环中的警告)
因此,实际上,无论您选择什么名称,都必须在文档中包含有助于将应用程序投入生产的确切日志级别,以及要保持活动状态的包。在log4j等现有日志框架中,严重性级别和程序中的位置是两个正交的概念
Log4j定义了以下级别:跟踪、调试、信息、警告、错误和致命,但也可以根据完成日志的类过滤输出。我会使用更多的自我描述名称,如:
- 所有东西都坏了需要立即注意
- 罕见的重要事件(包括初始化/关闭)
- 详细的执行跟踪
- 吨调试信息
不要害怕使用长名称,IDE将自动完成它们。比起乱七八糟的日志,最好使用更长的名称。关于日志,最重要的一点是,不应将日志编写成开发者就是读者的样子。在几乎所有情况下,日志都将由管理或操作人员读取。在许多情况下,它们将被另一个程序读取 因此,我始终建议根据所需响应的即时性来区分日志。安德烈的日志级名字可能有点开玩笑,但这个概念在金钱上是正确的。日志级别应反映以下内容:
- (最高)系统故障-需要立即干预
- 可能破损,或出现问题-需要调查,并可能进行干预
- 状态/信息报告-常规心跳或摘要统计
最后一个有两个目的,一个是公开的,一个是微妙的。公开的目的是记录一些关于应用程序运行状况和性能的有用信息。其次,日志中的常规输出让操作员知道应用程序仍在正常运行。(也就是说,如果我看到一个日志文件在过去3小时内没有新条目,我很可能认为它已经死了。)为什么要尝试创建一些非标准的东西?坚持调试、警告、信息和错误。可能标准被打破了。我只是不知道何时使用警告、信息或错误。感觉不直观。我想要感觉合适的级别。我认为频率很重要。因为它会影响生产环境。忽视我的应用程序的生产状态是一种犯罪。:)我喜欢Android命名他们的一切的方式,日志级别:。