Log.isDebugEnabled()使用场景

  

  由于代码中部分日志想只在Debug模式下才打印出来,如果是Info模式就会显得太多了。所以很自然的就想到直接LOG.debug(……)。但是看到了以前一个大牛的代码,发现打印debug的时候都加了一层判断,就是Log.isDebugEnabled(),看着很奇怪,既然已经是Debug模式,为什么还需要加这么一层判断呢??

  自己搜索了一下,原来这个问题别人也注意过,给出了这样的回答,就是当要打印的debug信息比较复杂,比如我的就是,要把整个List打印出来,这时候就适合加Log.isDebugEnabled()判断,原因如果不加,LOG还是会构造里面的串,如果比较复杂,构造了却不打印,很浪费。所以这个时候最好加一层判断。

  当然,如果里面就是一个简单的字符串,还是可以直接LOG.debug(……)而不需加判断的。

  最后,记住这种使用模式:

if (LOG.isDebugEnabled()) {
    LOG.debug("Input Object/List/Map:" + Object/List/Map);
}

  

时间: 2024-11-05 11:00:57

Log.isDebugEnabled()使用场景的相关文章

log.isDebugEnabled()的使用

转自: http://huangxx.iteye.com/blog/190693 在使用log4j,common-log这样的log框架时,发现很多代码中这样写 if   (log.isDebugEnabled())   {           log.debug( "xxxx "); } 我很奇怪,为什么要与log.isDebugEnabled()?既然log.debug()在没有指定输出级别为DEBUG时不会有输出,为什么还要在前面加一个isDebugEnabled()的判断? 为

log4j中isDebugEnabled(), log.isInfoEnabled()和log.isTraceEnabled的封装

1. log4j中log.isDebugEnabled(), log.isInfoEnabled()和log.isTraceEnabled()作用 项目在应用log4j打印Debug,Info和Trace级别的log时需要加上对应的三个方法进行过滤,代码如下: if (log.isDebugEnabled()) { log.debug(" From: " + req.getFrom().toString() +                   " To: " +

C++、Java、JavaScript中的日志(log)

编程思想之日志记录 什么是log? 相信你一定用日记写过点滴心事,或是用空间.微信.微博刷着动态,记录你每天的喜怒哀乐!在程序中也有一种类似的东西,记录着他主人(应用程序)每天的行踪,他叫日志(log).日记--是人类生活的记事本,日志(log)--是程序运行状况的记事本. 顾名思义,日志(log,后面均以log称之)就是用来记录程序每天的运行状况的,比如程序出现异常的情况,或是某个关键点,功某个重要的数据或交易等.这里的每天不是说每天一记,可以是伴随着程序运行的始终,只要程序在运行着就一直在记

何时使用log4j的isDebugEnabled属性来进行日志记录?

我经常见到这个问题,到底使不使用idDebugEnabled属性.这个问题经常被争论,而焦点往往是性能. 答案很简单.既然有这个属性,当然是拿来使用的.但是使用的时候需要注意. 例如,在我的代码中,我如下使用. Java代码 log.debug("I am there"); 这个例子是一个好的实践. 然而如果我按照如下的方式来使用,我觉得就是不必要的了. Java代码 // Not good practise if (log.isDebugEnabled()){ log.debug(&

软件开发工程师(JAVA)中级考试大纲-----四(四)Log4J的原理及配置;Log4J常用的API;在项目中应用日志框架Log4J关键类和接口介绍;Java properties配置文件log

log4j Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件,甚至是套接口服务器.NT的事件记录器.UNIX Syslog守护进程等:我们也可以控制每一条日志的输出格式:通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程.最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码. 1定义 log4j--log for java(java的日志) 在强调可重用组件开发的今天,除了

Android log系统 转

Android log系统 light 2011/11/20 Android 系统log抓取,实现原理分析   一 概述 本文档主要是供Android开发人员使用,特别是Framework开发.因为Framework中95%以上的问题都是靠分析log解决的,所以开发人员必须对android整个log系统十分清楚.什么问题抓什么log, 使用什么工具抓Log,如何分析log, 如何在代码中添加log. 二DDMS log 关于ddms是如何工作的和ddms的详细功能,见下面android sdk中

oracle redo log的维护

Oracle online redo log是Oracle数据库中核心文件之一.在数据库操作中,只要有任何的数据块变化,都会生成相应的redo entry.redo entry首先保存在log buffer中,最后由lgwr进程写入到Redo log里面. Online Redo Log的维护和性能是影响Oracle工作的一个重要方面.本文从日常维护角度出发,介绍几个常见的场景处理方法. 1.Redo Log Group和Redo Log Group Member Redo Log在数据库中的作

Oracle442个应用场景-----------Oracle数据库物理结构

-------------------------Oracle数据库物理结构------------------------------- Oracle数据库物理结构 oracle的数据,实际上是以文件的形式来保存的,文件中出了保存用户的数据之外, 还需要保存管理数据和日志数据等等.作为一个DBA,必须需要知道自己的数据分别保存在什么位置上, 而且经验丰富的管理员还应该在设计数据库的时候合理的规划文件的保存位置.初始大小以及增量属性等, 这样既能满足用户应用程序的需要,还能保证数据库高效的运行.

loadrunner中log的使用初步总结

1.log的设置方式 . 在 runtime setting中可以设置log的生成方式: 默认的log方式: Enable logging选中,log option是Send messages only when an error occurs. 可以修改日志的方式: Always send messages(这种方式会一直打印输出日志,不仅在错误时) standard log——记录所有的请求反馈的日志,包括successful和fail的日志. Extended log——可提供扩展的日志信