CodeGym/Java 课程/模块 3/设置日志记录级别

设置日志记录级别

可用

4.1 日志级别列表

您编写了程序,将其上传到服务器,然后您立即开始有疑问:

  • 如何确保debug()该方法在工作时不起作用production
  • 日志中的信息太多,是否只留下错误信息?
  • 如何查看应用程序某一部分的详细日志?

当然,日志的创建者几十年前就面临过同样的事情。我不会告诉你这个问题在C语言中是如何解决的,但是在Java语言中却非常漂亮地解决了。

日志在将信息写入. 您可以通过设置日志记录级别非常快速地减少/增加日志的详细信息。下表描述了这些级别:

等级 笔记
1个 全部 记录所有消息
2个 痕迹 调试时的小提示
3个 调试 对调试很重要的消息
4个 信息 简单的消息
5个 警告 只写致命、错误和警告
6个 错误 只写错误和致命错误
7 致命的 只写致命错误
8个 离开 不要将消息写入日志

过滤消息时使用这些级别。如果您将日志记录级别设置为WARN,那么所有不重要的消息都WARN将被丢弃:TRACEDEBUGINFO。如果将过滤级别设置为FATAL,则甚至ERROR

还有两个严重级别用于过滤 - 这OFF(丢弃所有消息)和ALL- 写入所有消息(不丢弃任何内容)。

4.2 日志设置示例

让我们看一个简单的日志设置示例。为此,我们需要 log4j.properties 文件,该文件可以放在资源文件夹中。让我们向其中添加以下内容:

# Root logger option
log4j.rootLogger=WARN, stdout

# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}

在第一行中,我们设置了日志记录级别 - WARN。这意味着写入带有状态的记录器的消息DEBUGINFO被忽略。

  • 指定我们将使用什么类型的 appender -ConsoleAppender
  • 指定我们将写入日志的位置 -System.out
  • 我们设置将控制记录格式的类 -PatternLayout
  • 设置所有消息的录音格式 - 日期和时间

4.3 常见的日志记录错误

还有一点很重要——日志记录中的常见错误。做某事的选项不多,但可以确定几个常见的错误:

  1. 太多的记录。您不应该记录每一步,这在理论上可能很重要。有一个规则:日志可以加载性能不超过 10%。否则会有性能问题。
  2. 将所有数据记录到一个文件中。这将导致它在某些时候很难读/写,更不用说某些系统上有文件大小限制。
  3. 使用错误的日志级别。每个级别的日志记录都有明确的界限,应该得到尊重。如果边界模糊,您可以就使用哪个级别达成一致。
评论
  • 受欢迎
你必须先登录才能发表评论
此页面还没有任何评论