zoukankan      html  css  js  c++  java
  • slef4j的好处

    以前一直用log4j

    每天都写

    log.debug(XXX)

    log.error(XXX),当XXX部分包含的内容是由多个变量组合得到时,就用"XXX" + "YYY" + "ZZZ",虽然知道拼接字符串的效率不好,但是也没有去试图找更好的办法。

    今天看到同事的代码里这样写的(用的是slf4j)

    log.error("根据卡类型和面值无法找到对应卡[{}][{}]", new String[]{"001", "30"});

    这样能够非常优雅的就把后面的两个参数001和30拼接到前面的string里了

    日志输出会是这样

    根据卡类型和面值无法找到对应卡[001][30]

    非常惭愧我以前一直是傻傻的这样写

    log.error("根据卡类型和面值无法找到对应卡[" + "001" + "][" + "30" + "]");

    下面引用slf4j的维基百科的介绍

    • log4j 提供 TRACE, DEBUG, INFO, WARN, ERROR 及 FATAL 六种纪录等级,但是 SLF4J 认为 ERROR 与 FATAL 并没有实质上的差别,所以拿掉了 FATAL 等级,只剩下其他五种。
    • 大部分人在程序里面会去写logger.error(exception),其实这个时候log4j回去把这个exception tostring。真正的写法应该是logger(message.exception);而slf4j就不会使得程序员犯这个错误。
    • log4j间接的在鼓励程序员使用string相加的写法,而slf4j就不会有这个问题 ,你可以使用logger.error("{} is+serviceid",serviceid);
    • 使用slf4j可以方便的使用其提供的各种集体的实现的jar。(类似commons-logger)
    • 从commons--logger和log4j merge非常方便,slf4j也提供了一个swing的tools来帮助大家完成这个merge。

    对我而言最有用的就是提供了字符串替换的功能,类似String.format()

    
    
    
  • 相关阅读:
    java常用类及第三方开源库-资料汇总
    java动态追踪技术研究-美团技术中心
    MPP架构是什么?看这一篇就行了。。
    大数据基础-数据存储组件介绍
    Scrum团队从创建到成熟的四个阶段
    k8s基础知识-备忘总结
    Kafka基础知识总结笔记
    DDD学习大纲
    HBase资料汇总
    R-CNN系列(3)—— Fast R-CNN
  • 原文地址:https://www.cnblogs.com/baibaluo/p/2092414.html
Copyright © 2011-2022 走看看