java:log4j:private static Logger logger = Logger.getLogger(MstNinushiAction.class); 什么意思?

本文介绍了Java中使用Log4j时,`Logger.getLogger(MstNinushiAction.class)`的含义。这行代码用于创建并初始化一个logger实例,其中`.class`用于获取指定类的Class对象,以便在日志信息中标识记录日志的类路径。通过这种方式,可以跟踪和区分不同类的日志输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

后面的.class有什么作用?

Logger.getLogger(Class clazz) 语法

**.class是将你要加入日志的类加进入 假如你的myclass这个类需要加日志信息就在
private static Logger logger = Logger.getLogger(myclass.class);
这是获取一个myclass类的logger myclass内定义的日志信息就能够显示出来了

就是得到MstNinushiAction的Class类型对象,因为Logger.getLogger方法需要传入Class类型对象,这样该logger的信息中会详细体现出是哪个路径的哪个类的日志。

 

1.使用指定类初始化日志对象
 在日志输出的时候,可以打印出日志信息所在的类,如下:
 Logger logger = LoggerFactory.getLogger(com.User.class);
       logger.debug("用户信息");
       将会打印出: com.User : 用户信息

 2.看源码:
 LoggerFactory中的getLogger方法,返回一个以name命名的静态绑定的实例,
 而这个name一般以Logger实例所在的类命名,如通过类名.Class.getName()获取。

 public static Logger getLogger(String name) {  
  ILoggerFactory iLoggerFactory = getILoggerFactory();  
  return iLoggerFactory.getLogger(name);  
}  

ILoggerFactory的接口实例在编译时内部绑定LoggerFactory,这个接口中只有一个public Logger getLogger(String name)方法,根据参数名称返回适当的实例
看看这个getILoggerFactory()方法.

public static ILoggerFactory getILoggerFactory() {  
  if (INITIALIZATION_STATE == UNINITIALIZED) {  
    INITIALIZATION_STATE = ONGOING_INITIALIZATION;  
    performInitialization();  
  }  
  switch (INITIALIZATION_STATE) {  
    case SUCCESSFUL_INITIALIZATION:  
      return StaticLoggerBinder.getSingleton().getLoggerFactory();  
    case NOP_FALLBACK_INITIALIZATION:  
      return NOP_FALLBACK_FACTORY;  
    case FAILED_INITIALIZATION:  
      throw new IllegalStateException(UNSUCCESSFUL_INIT_MSG);  
    case ONGOING_INITIALIZATION:  
      // support re-entrant behavior.  
      // See also http://bugzilla.slf4j.org/show_bug.cgi?id=106  
      return TEMP_FACTORY;  
  }  
  throw new IllegalStateException("Unreachable code");  
} 

这是返回ILoggerFactory的实例,用于调取getLogger方法。
在Logger接口中规定了日志的输出的方法,根据相应的参数需要设置
就可以在控制台看到输出的日志信息了。 

参考:https://blog.youkuaiyun.com/huangxingchen123/article/details/52193648

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值