当前位置: 首页 > 面试题库 >

如何在Java中使用日志级别

陈实
2023-03-14
问题内容

我正在开发一个需要使用记录器功能的应用程序。我已经了解了不同级别的记录器,这些记录器是:

  • 严重(最高)
  • 警告
  • 信息
  • 配置
  • 精细
  • 罚款
  • 最好的

我无法理解每个日志记录级别的用法。

有人可以给我一个很好的例子,显示所有日志记录级别及其用法吗?


问题答案:

通常,您不需要所有这些级别,SEVERE,WARNING,INFO,FINE可能就足够了。我们正在使用Log4J(不是直接java.util.logging)和以下级别(其名称可能与其他日志记录框架不同):

  • 错误:任何严重错误或异常。我们的记录仪会自动发送一封电子邮件,我们的服务器上的每个这样的消息(用法: logger.error("message");

  • 警告:这可能提醒我们的潜在问题的任何消息,例如当用户试图用错误的凭据登录-这可能表明攻击如果经常发生或时间的短期(用法:logger.warn("message");

  • INFO:凡是我们要在日志文件看的时候就知道了,例如,当开始计划作业/结束(用法:logger.info("message");

  • 调试:顾名思义,调试我们很少打开的消息。(用法:logger.debug("message");

这样做的好处是,如果将日志级别设置为WARN,则信息和调试消息几乎不会影响性能。如果您需要从生产系统中获取其他信息,则可以在很短的时间内将级别降低到INFO或DEBUG(因为您将获得更多的日志条目,这会使您的日志文件更大且更难读取)。调整日志级别等通常可以在运行时完成(我们的JBoss实例每分钟左右检查一次该配置的更改)。



 类似资料:
  • 我应该何时使用低于日志级别?如果有任何例子,那将是伟大的。 跟踪与调试 警告 vs 错误 vs 致命 警告Vs错误VS致命 我是否需要首先在我的应用程序代码中使用FATAL? 迄今为止,在我参与的项目中,我从未在任何代码中看到致命的日志记录。 我读过,如果FATAL程序将结束。如果是这种情况,我想知道我的日志语句将如何执行。 此外,我认为在内存分配的情况下不能使用FATAL,因为JVM会抛出内存溢

  • 我一直在尝试更改用户日志的日志级别,即出现在

  • 使用java.util.Logging时,可以在logging.properties文件中配置特定类的日志级别(即具有类名称的子记录器),如下所示: 我使用类名在MyClass中创建子记录器,如下所示: 在Google Web Toolkit gwt.xml文件中有类似的配置方法吗?

  • 我们在应用程序中使用Hikari连接池进行数据库连接管理。我们已经将Hikari CP配置为tomcat服务器中的资源。xml。现在由于HIKARI的一些问题,我们需要从HIKARI库生成调试级日志。我尝试在conf\log4j中配置包级记录器。属性,但我无法查看HIKARI库中的日志。从tomcat服务器中用作资源的库中进行日志记录是否有任何不同的配置。xml? 下面的行添加到log4j中。co

  • 控制台日志被来自第三部分库的日志弄得乱七八糟。例如,我的项目使用kafka和zooker keeper客户机库,因此有太多的日志来自它们 > 2018-05-08 10:30:38.250信息2968---[0:0:0:1:2181)]org.apache.zookeeper.clientcnxn:打开到服务器0:0:0:0:0:0:0:0:0:1/0:0:0:0:0:0:1:2181的套接字连接

  • 在我的Java应用程序中,我使用SLF4J+Logback进行日志记录。我在开发环境中使用调试级日志记录,在生产环境中使用错误级日志记录。但是有一些消息我无论如何都想要记录下来,无论日志级别如何(类似于,但使用的是logger)。 有什么切实可行的方法可以实现这一点吗?我可以使用error或更低的级别,但我想做的是给出一些信息,所以在语义上是错误的,它不是错误。 我可以在我的中为我的类定义另一个记