log4j中log.isDebugEnabled(), log.isInfoEnabled()和log.isTraceEnabled()作用
项目在应用log4j打印Debug,Info和Trace级别的log时需要加上对应的三个方法进行过滤,代码如下:
if (log.isDebugEnabled()) {
    log.debug(" From: " + req.getFrom().toString() + 
                  " To: " + req.getTo().toString() + 
                  " CallId: " + req.getCallId() + 
                  " msg:" + msg);
}
其作用是因为Debug,Info和Trace一般会打印比较详细的信息,而且打印的次数较多,如果我们不加log.isDebugEnabled()等
进行预先判断,当系统loglevel设置高于Debug或Info或Trace时,虽然系统不会答应出这些级别的日志,但是每次还是会拼接
参数字符串,影响系统的性能。
2.错误的优化方法
部分编码人员因为不了解机制,从代码复用性和简洁性而言定义如下函数来封装
    private void debug(String msg) {
        if (log.isDebugEnabled()) {
            log.debug(msg);
        }
}
其实这种封装方式是错误的,因为当系统中调用debug(msg)函数还是出现字符串的拼接。

结论:这3个方法是对对项目的优化方法,加这个方法目的地在于如果代码中存在连接字符串的情况,打印信息时会出现太多的拼接字符串影响系统性能。如果系统中是固定字符串加不加都可以。

org.slf4j.Logger中isTraceEnabled(),isDebugEnabled(),isInfoEnabled(),isWarnEnabled(),isErrorEnabled()相关推荐

  1. 浅谈slf4j,logger中的{}功能

    slf4j有一个common logger没有的功能,字符串中的{}会被替换,如下: logger.info("Hello {}","world");log.d ...

  2. Maven : Maven和jenkins报错 ClassNotFoundException : org.slf4j.Logger

    1.美图 2.问题 执行一个flnk的jar报错 执行发现报错,然后也看不到错误信息,于是用java -jar去执行试试. 结果发现报错 ClassNotFoundException : org.sl ...

  3. slf4j.Logger的全面讲解及e.getMessage()为何为空

    测试: @Testpublicvoid testDelegateHandleRequestFour2() {Filefile = new File("E:\\study\\text.txt& ...

  4. slf4j logger

    slf4j logger 打印日志 1.引入slf4j 接口的logger和loggerFactory (即引入org.slf4j:slf4j-api的jar包以及slf4j-log4j12的jar包 ...

  5. 当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'Logger' 中的标识列插入显式值

    当使用mybatis插入数据时提示这个错误,原因是主键设置为自增长的,所以我们不需要再sql语句中再添加该主键字段了. 这个是很简单的,当时却怎么也不知道原因,看了网上很多例子,都不是很好,所以我写了 ...

  6. spark2-submit在CDH环境下ClassNotFoundException:org.slf4j.logger

    1.视界 2. 背景 从集群的机器上拷贝了一个Spark客户端,结果直接执行spark2-submit命令报错,报错如下图 3.解决 我们,没做任何操作,客户在集群上装了一个spark-gateway ...

  7. java slf4j日志级别_java - 在slf4j中设置运行时消息的日志级别 - 堆栈内存溢出

    ===============>>#1 票数:41 已采纳 使用slf4j无法做到这slf4j . 我想,缺少这个功能的原因是,几乎不可能为slf4j构建一个Level类型,它可以有效地映 ...

  8. log4j.properties中的这句话“log4j.logger.org.hibernate.SQL=DEBUG ”该怎么写在log4j.xml里面呢?...

    http://www.cnblogs.com/gredswsh/p/log4j_xml_properties.html 请问:log4j.properties中的这句话"log4j.logg ...

  9. SLF4J 教程(自由在各种log中切换)

    http://www.blogjava.net/dreamstone/archive/2007/07/09/128993.html 一.介绍: 简单日记门面(simple logging Facade ...

最新文章

  1. g-gdb工具使用图谱(持续更新)
  2. 彻底解决Linux索引节点(inode)占用率高的告警
  3. java线程stop re_Java 多线程 之 stop停止线程实例
  4. 百度也出分享(百度分享)
  5. TensorFlow学习笔记(十六)tf.random_normal
  6. RabbitMQ(mall学习)
  7. PHP autoload实践
  8. 767. 重构字符串
  9. 2021年暑期旅游数据报告
  10. docker-maven-plugin 发布镜像到 window环境的docker服务器
  11. 下面属于python内置对象的有哪些_Python内置对象实现的方法及注意事项
  12. DOC命令大全--(转)
  13. js基础知识汇总05
  14. 二分排序(java)
  15. cad插件_CAD素材与插件合集
  16. 激光雷达科普(1):激光雷达的分类及重要参数
  17. 手机摄像头驱动_聚辰股份,智能手机摄像头EEPROM产品供应商
  18. html怎么实现网页中文件下载功能
  19. java代码如何整合_Java如何合并两个PPT文档?
  20. 微信公众平台开发入门教程[2020版]

热门文章

  1. 为转型绞尽脑汁,新东方到美国教中文!网友:卷到国外去了
  2. Xiaomi Civi即将发布 雷军:宽度仅71.5mm 刚刚好的握持感
  3. 淘宝宣布改名,网友:改了个寂寞?
  4. 刘作虎:今年一加9系列不会送测DxO
  5. 丰巢拒绝放弃超时收费:不想用,可以别用
  6. 快播王欣:区块链今天最重要的成果还只是理念布道
  7. 三星Galaxy A70s现身GeekBench数据库:搭载6400万像素传感器
  8. 微信内测新功能:公众号们脖子一凉...
  9. 紫光展锐回应“春藤510只支持NSA”:错误解读 SA和NSA一个都不少
  10. 刚开完2019WWDC 苹果就被iOS开发者们集体起诉...