如何在Java语言中使用logger.log(LEVEL.DEBUG,message / instance)

时间:2014-04-14 18:16:08

标签: java logging

我是java新手并且已经知道(有人告诉我)logger.log(LEVEL.DEBUG,message / instance)在跟踪或获取Java语言的日志信息方面很有用   我用谷歌搜索并看到了许多SO线程,但无法获得任何帮助,我想知道它的用途以及如何从这种方法中获得最大的好处。

2 个答案:

答案 0 :(得分:1)

我首先要做以下Google搜索:

logging best practices java

我得到的第一个链接是this,它解释了何时使用每个日志级别。

现在,为了给出一些上下文,日志级别用于通过大量日志文件轻松切片。想象一下,您有一个Web应用程序,可以为每个用户的特定点击操作创建日志。如果该Web应用程序有数千名用户同时登录到该应用程序,则每分钟最终可能会有数百万行日志。你怎么知道哪个日志对你很重要?浏览数百万行并不是明智之举,是吗?

作为开发人员,您可能只对ERROR或WARN感兴趣。营销人员可能对INFO日志感兴趣,这些日志指示哪些网页或网站的部分获得最多点击,网络人员可能希望查看指示严重服务器问题的日志。

SLF4J还允许您创建自定义MARKERS。您可以向日志添加标记,以便从日志中获得更高的业务价值。

总而言之,我会说,在您的代码投入生产后,将日志视为您最好的朋友。使用级别,标记等组织日志越好,您就能越早调试问题并及时做出响应。

答案 1 :(得分:0)

听起来有人在向您提供有关Apache日志记录(“DEBUG”)的信息,但其背后的目的以及您在帖子中显示的日志基本相同:即向开发人员(通常)提供他们的信息在查看代码时会发现有用。

java.util.logging.Level中有几个可用的日志记录级别。这些用于控制记录消息中详细记录的日志记录级别。

严重 - 表示严重问题 警告 - 通常用于表示潜在问题 信息 - 用于信息消息 CONFIG - 用于静态配置消息 精细 - 提供一些跟踪信息 FINER - 提供比FINE更多的跟踪信息 最好 - 提供最多的跟踪信息 全部 - 记录所有消息 OFF - 关闭记录器

如果您希望提供开发人员在代码中感兴趣的信息,您可能会使用FINE,FINER或FINEST,具体取决于您要提供的信息量。但是,这通常不建议在生产环境中使用,因为额外的详细信息可能会变得非常垃圾。通常在这样的环境中,使用INFO或WARN的日志记录级别,然后仅在发生重大问题时才启用跟踪信息,并且无法在本地轻松复制。

当您调用log(LEVEL,String message)时,将根据阈值(通常在属性文件中设置)检查消息的级别,以查看是否需要记录该消息。如果是这样,配置的appender会在适当的位置添加消息(控制台,文件等等)。

我还建议使用Apache的Log4J等第三方库来增强日志记录功能。见org.apache.log4j.Level。它本质上提供了对日志记录的更细粒度的控制,并使用更准确地定义要附加的消息级别的级别术语。

DEBUG类似于FINE,TRACE类似于FINEST,ERROR和FATAL类似于SEVERE等......

这对你有帮助吗?