log4j2 logger

在“ 带有Java 7方法句柄的可移植记录器名称”一文中 ,我写了关于使用Java 7的方法句柄来命名类的记录器的文章。 我在那篇文章中说过,这种方法的优点包括记录器命名的一致性,并避免了意外的代码复制和粘贴,这可能导致不同的类名被用作记录器名称。 在这篇文章中,我看看如何Log4j的2提供了一种方法实现这些同样的好处。

Log4j 2可以识别基于类名的记录器命名方法。 Log4j 2手册中 “ Log4j 2 API ”页面的“ Logger Names ”部分指出:“在大多数情况下,应用程序通过将当前类的名称传递给LogManager.getLogger来命名其记录器。 因为这种用法非常普遍,所以Log4j 2提供了它作为记录器名称参数被省略或为空时的默认值。”

以下非常简单的Calculator类演示了此过程,即使用无参数LogManager创建一个Logger 。 getLogger()调用。 因为没有参数传递给getLogger()方法,所以记录器将以创建Logger的类命名。 方法LogManager.getLogger()的Javadoc注释确认了此行为:“返回带有调用类名称的Logger。”

计算器.java

package dustin.examples.log4j;import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;import java.util.Arrays;/*** Simple calculator class that is intended more for demonstration* of Log4j2 than for calculating anything.*/
public class Calculator
{private static final Logger logger = LogManager.getLogger();public String getLoggerName(){return logger.getName();}/*** Add the provided operands together and provide their sum.** @param operands Operands to be added together.* @return Sum of the provided operands.*/public long add(final long ... operands){long sum = 0;for (final long operand : operands){sum += operand;}logger.debug("The sum of " + Arrays.toString(operands) + " is " + sum);return sum;}
}

如上所示,通过实现Calculator类,可以通过调用Logger.getName()来获得该类的记录器名称,如Calculator方法getLoggerName()所示,该名称是“ dustin.examples.log4j.Calculator”。 尽管此处未显示,但使用无参数LogManager.getFormatterLogger()检索的Logger也将使用“调用类的完全限定名称作为Logger名称。”

结论

假设所选记录器的命名方案是使用完全合格的程序包和类名,则本文中讨论和演示的Log4j 2方法易于使用,并且易于使用一致且正确的记录器名称。 这种方法比命名日志记录器的方法处理方法更简短,甚至更具可读性,但是该方法特定于Log4j 2,而该方法处理的方法可以与多个日志记录框架和库一起使用。

翻译自: https://www.javacodegeeks.com/2015/10/easy-and-consistent-log4j2-logger-naming.html

log4j2 logger

log4j2 logger_简单一致的Log4j2 Logger命名相关推荐

  1. log4j2漏洞简单复现

    文章目录 0x1 log4j2漏洞简介 0x2 log4j2漏洞验证判断 0x3log4j2漏洞复现利用 0x04 log4j2漏洞修复方式 0x1 log4j2漏洞简介 log4j2原理: log4 ...

  2. 简单一致的Log4j2 Logger命名

    在带有Java 7方法句柄的可移植记录器名称一文中 ,我写了关于使用Java 7的方法句柄来命名类的记录器的文章. 我在那篇文章中说过,这种方法的优点包括记录器命名的一致性,避免了意外的代码复制和粘贴 ...

  3. 【log4j 2.x】【log4j日志升级漏洞修复】log4j2日志 [简单明了][一眼就会]

    大多同学说的不是很全,写的不是很具体. 在此,本人出一篇简单明了的详细教程: 先看效果: 目录: 1.加载log4j 2包 2.配置xml文件 3.写测试并运行 4.log指定文件:自动打印info. ...

  4. log4j2 mysql_[简单]log4jdbc-log4j2配置简记

    log4jdbc-log4j2,就不多说了,不了解的可以谷歌,附上log4jdbc-log4j2的官方链接: 外链网址已屏蔽 ,上面有非常详细的介绍. 简单的贴下配置文件,其他的见附件: databa ...

  5. log4j2入门(四) log4j2.xml配置文件详细实例

    log4j2相对于log4j 1.x有了脱胎换骨的变化,其官网宣称的优势有多线程下10几倍于log4j 1.x和logback的高吞吐量.可配置的审计型日志.基于插件架构的各种灵活配置等.如果已经掌握 ...

  6. Log4j2官方文档翻译--欢迎使用Log4j2!

    官网原文标题<Welcome to Log4j 2!> 官网原文地址http://logging.apache.org/log4j/2.x/manual/index.html 译者:本文介 ...

  7. 为什么加上log4j2.version配置就可以更新log4j2的版本?

    最近log4j2的核弹级漏洞席卷了大部分互联网公司,升级版本成了这两周的核心任务.对于要升级到什么版本,最新版本2.16.0是最佳选择.那么如何快速升级,之前也给出了Spring Boot项目升级版本 ...

  8. 自定义python框架_python 简单日志框架 自定义logger

    转载请注明: 仰望高端玩家的小清新 http://www.cnblogs.com/luruiyuan/ 通常我们在构建 python 系统时,往往需要一个简单的 logging 框架.python 自 ...

  9. Log4j2日志记录框架的使用教程与简单实例

    1.Log4j2的使用教程 1.1 简介 Log4j的1.x版本虽然已经被广泛使用于很多应用程序中,但由于出现内存泄漏等bug,代码难以维护,以及需要使用老版本的jdk等劣势,在2015年8月已经玩完 ...

最新文章

  1. python机器学习可视化工具Yellowbrick介绍及平行坐标图实战示例
  2. Linux下使用Vim粘贴文本错乱问题解决
  3. java框架篇---spring IOC依赖注入
  4. Eclipse——WindowBuilder插件
  5. 【推荐系统(一)】协同过滤之基于领域的方法(UserCF,ItemCF)
  6. Marketing Cloud里如何创建新的query视图并设置为默认显示界面
  7. 高斯粒子滤波matlab,粒子滤波(Particle filter)matlab实现 | 学步园
  8. [2016-03-15]rabbitmq notes
  9. Skyline软件二次开发初级——3如何在WEB页面中的三维地图上创建几何对象
  10. UTM投影坐标计算距离
  11. 计算机第二章测试题及答案,计算机组成原理第二章练习题及答案
  12. 整理六百篇web前端知识混总
  13. 双向循环链表的C++实现
  14. app违规收集个人信息被通报了怎么办?教你如何整改
  15. aardio 多线程开发入门
  16. 如何将word转换成excel表格格式
  17. 手动标记用例状态_界面测试用例.doc
  18. 入门学习duilib的要点
  19. 科研合作应该互相尊重
  20. 2013 12 android 凯立德秋季高清旗舰 百度云,【荐】2013.4.12凯立德春季完美安卓手机版+4月23日更新车用高清版...

热门文章

  1. P4306-[JSOI2010]连通数【bitset】
  2. P1129-[ZJOI2007]矩阵游戏【最大匹配】
  3. CSPNOIP2020总结
  4. P1525-关押罪犯【并查集】
  5. nssl1141,jzoj3470-最短路【SPFA,暴力】
  6. HDU4035 Maze(树上期望)
  7. codeforces1451 C. String Equality
  8. Scala与Java差异(六)之类定义
  9. SpringBoot集成Flowable
  10. Spring Boot 消息队列 RocketMQ 入门