private static final Logger logger=xxx 之为什么用static和final??

private static final Logger logger= LoggerFactory.getLogger(ShiroConfig.class);

我们经常这样创建日志实例,那么为什么要用static还有final呢??

1.定义成static final,logger变量不可变,读取速度快

2.static 修饰的变量是不管创建了new了多少个实例,也只创建一次,节省空间,如果每次都创建Logger的话比较浪费内存;final修饰表示不可更改,常量

3.将域定义为static,每个类中只有一个这样的域.而每一个对象对于所有的实例域却都有自己的一份拷贝.,用static修饰既节约空间,效率也好。final 是本 logger 不能再指向其他 Logger 对象

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Spring Boot应用程序中,使用log4j2日志框架记录日志时,通常在类中定义一个类变量,以便在整个类中可以共享它。这个类变量通常是一个先前定义好的静态日志对象,可以使用LogManager类的getLogger方法创建它。这个Logger对象负责管理所有与日志记录相关的操作。在这个情景中,创建了一个私有静态的Logger对象,该对象定义在InfoResource类中。该Logger对象的名称是"InfoResource.class",表示这个Logger对象与InfoResource类相关联。其中的logger常量是用来记录日志的。 下面是一个示例: ``` import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class InfoResource { private static final Logger logger = LogManager.getLogger(InfoResource.class); @GetMapping("/info") public String getInfo() { logger.info("Info Resource Accessed"); return "Info Resource Accessed"; } } ``` 在上面的代码中,我们定义了一个名为"logger"的静态final对象,该对象是LogManager类的getLogger方法的结果,其参数是InfoResource类的类对象。使用“logger.info”方法记录日志。该日志输出的级别是"info"。当控制台打印日志时,日志将输出 ``` 2021-10-08 11:59:41.740 INFO 4252 --- [nio-8080-exec-1] c.e.d.InfoResource : Info Resource Accessed ``` 这些日志包括时间戳、应用程序名称以及与日志记录相关的其他详细信息。在后台执行时,应用程序将输出许多这样的日志行,因此它们可以帮助程序员诊断应用程序的行为。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值