【问题标题】:@Slf4j from private to public@Slf4j 从私有到公共
【发布时间】:2022-01-06 08:30:55
【问题描述】:

我知道lombok.extern.slf4j@Slf4j 注释创建private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class);

但是我可以以某种方式将其公开吗?制作要创建的注解:public static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class);

提前致谢!

【问题讨论】:

  • 你为什么要这个?
  • 将记录器复制到受保护的变量中。
  • 这没有任何意义,我想使用注解,因为我不想导入 Logger 和 LoggerFactory 类,然后创建一个变量。或者我只是不明白你的意思。

标签: java logging slf4j lombok


【解决方案1】:

Lombok documentation 看来,这似乎是不可能的。您可以声明自己的记录器,但我非常怀疑您是否需要公开记录器并可以从其他类访问。通常你为每个类创建一个不同的记录器实例。你有理由希望它公开吗?

【讨论】:

  • 我的测试类是从一个基类扩展而来的,到目前为止,声明日志变量就足够了,其他类使用基类。但现在他们无法访问它,因为注释将其设为私有。
  • 如果你只有一个(或几个)基类,你可以明确地将它声明为受保护并完成它。我仍然鼓励您重构代码以使用不同的记录器,因为这样可以让您更好地控制记录的消息类型,例如为每个包或应用程序与测试类设置自定义规则。
  • 我应该声明什么受保护?
  • 显式记录器实例
猜你喜欢
  • 2010-12-23
  • 2011-09-23
  • 1970-01-01
  • 1970-01-01
  • 2014-03-30
  • 1970-01-01
  • 2011-11-06
  • 2011-12-03
  • 2011-06-18
相关资源
最近更新 更多