`
LSQ6063
  • 浏览: 68200 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

log4J不妥当的写法

阅读更多

//log4j不妥当的写法

 

public class Xml2DataParserImpl {
    private  final Log log = LogFactory.getLog(Xml2DataParserImpl.class);
}

 

妥当的写法
public class Xml2DataParserImpl {
    private  static final Log log = LogFactory.getLog(Xml2DataParserImpl.class);
}

 

实际上, 如果class被实例化的次数比较小的时候, 这个对性能影响也不大。 一个小小的命令可以检查:

 

find .  |grep -e "\.java$" |xargs grep "LogFactory.getLog" |grep -v static   (commons log4j)或者  find .  |grep -e "\.java$" |xargs grep "LoggerFactory.getLogger" |grep -v static  (slf4j) 

  

 

 

--摘自工作中线上性能方面

分享到:
评论

相关推荐

    log4j实用配置扩展

    #### 四、log4j的核心组件 log4j的核心组件主要包括**Loggers(记录器)**、**Appenders(输出源)**和**Layouts(布局)**。 1. **Loggers (记录器)**:负责生成日志信息,并决定是否发送日志信息到Appenders。记录器...

    log4gnet资料

    史上最全的log4gnet资料,欢迎下载学习,开发

    slf4j与log4j全面了解

    SLF4J作为一个轻量级的日志API,它的主要目标是为各种日志框架提供一个统一的接口,使开发者能够在不修改代码的情况下,自由选择适合项目的日志实现,如Logback、Log4j等。Log4j则是一个具体的日志实现,它提供了...

    Java8应用封装,手写ORM,LOG,framework

    通常,开发者会参考现有的开源日志库,如log4j或SLF4J,来设计自己的实现。 4. **自动化配置**: - 自动化配置是现代框架中的常见特征,它允许通过配置文件或注解来初始化和配置组件,减少了手动编码的工作量。...

    数学常见符号写法和读法大全

    数学是科学的基础,而数学符号则是数学语言的关键组成部分。...了解并掌握这些数学符号的写法和读法对于理解数学和理工科的概念至关重要,无论是学习基础数学还是进行高级研究,它们都是不可或缺的工具。

    Lombok快速入门及使用详情

    Lombok 快速入门及使用详情 Lombok 是一个 Java 库,...10. @Slf4j 自动生成 log 静态常量 使用 @Slf4j 注解,可以自动生成 log 静态常量,方便打日志。 Lombok 可以大大减少 Java 开发者的工作量,提高开发效率。

    简单的快速排序

    此外,快速排序在原地排序,不需要额外的存储空间,这也是其优势之一。 在实际应用中,快速排序通常与其他算法结合,比如在数据量小到一定程度时改用插入排序,以减少递归调用和提高效率。另外,对于具有大量重复...

    自己手写的一个简单的J2EE服务器

    5. **配置文件**:服务器配置,如log4j.properties(日志配置)、server.xml(服务器配置)等。 6. **测试文件**:JUnit测试用例,用于验证服务器功能的正确性。 在实现一个简单的J2EE服务器时,开发者通常会关注...

    c 实现数组和指针的快速排序

    快速排序的平均时间复杂度为O(n log n),但在最坏的情况下,如果输入数组已经排序或几乎排序,其时间复杂度会退化为O(n^2)。为了避免这种情况,可以采用三数取中法、随机化选择基准等策略优化选择基准的过程,提高...

    jpivot学习总结.doc

    4. JPivot标签库使用详解 4.1. Introduce JPivot 是一套基于 Mondrian 的 OLAP 前端展现工具,它提供了一套标签库来解决的 OLAP 的展现层问题。 在一个 JSP 页面当中,如果要使用 JPivot 标签库,除了要配置相关的...

    javascript入门笔记

    4、变量名不能重复 5、可以采用"驼峰命名法",小驼峰命名法使用居多 6、最好见名知意 var a; var uname; 4、变量的使用 1、为变量赋值 - SET操作 只要变量出现在 赋值符号(=)的左边一律是赋值操作 var uname...

    北大青鸟DVD管理系统源代码

    开发者可能使用了try-catch异常处理和日志库如Log4j来记录程序运行过程中的问题。 8. **部署与运维**:系统部署可能包括服务器配置、数据库初始化、环境变量设置等,需要了解基本的服务器管理和运维知识。 通过...

    求两个数组的交集,配合去重方法使用.html

    // console.log(arr4) // } // fn(nums1, nums2) // 方法二: var arr1 = [1, 2, 2, 3, 4, 5]; var arr2 = [2, 2, 3, 4, , 6, 7, 8]; // 输出的内容 [2,3,4] // 循环拿出arr1数组中的每一个数据 /* ...

    java8源码-example:常见的java知识点代码示例

    Log4j建议只使用四个级别,优先级从高到低分别是 ERROR、WARN、INFO、DEBUG。 通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。 比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的...

    C#快速排序练习

    它基于分治策略,通常比其他O(n^2)时间复杂度的排序算法更快,平均时间复杂度为O(n log n)。在最坏的情况下,即输入数组已经完全排序或逆序时,快速排序的性能退化为O(n^2),但这种情况在实际应用中很少出现。 快速...

    javascript将数字转换整数金额大写的方法.docx

    但需要注意的是,在实际应用中还可能存在特殊情况,例如对于特定数值的特殊处理、地区差异导致的不同写法等,这些都需要根据具体需求进行调整和完善。 此外,考虑到实际项目的复杂性和多样性,还可以考虑使用现成的...

    jquery的each()函数用法[文].pdf

    console.log(j, val); }); }); ``` 这将依次输出:0 "a",1 "aa",2 "aaa";然后是0 "b",1 "bb",2 "bbb";最后是0 "c",1 "cc",2 "ccc"。 3. **遍历JSON对象**: `each()`函数也可以用来遍历JSON对象的每...

    获取style标签和外联(link)样式表

    console.log(rules[j]); } } ``` 这段代码首先获取所有标签,然后遍历每个样式表,用`rules`或`cssRules`来兼容不同浏览器。这样,我们就能获取到内部样式表的所有规则。 对于外部引用的样式表,我们需要找到所有...

Global site tag (gtag.js) - Google Analytics