SLF4J:避免完全限定的类名

Rob*_*ino 4 java logging slf4j

这对你的家伙来说很容易!

如何防止 SLF4J 显示完全限定的类名(例如com.mycompany.mypackage.MyObject)而只输出MyObject

我通常更喜欢这个:

1)

private static final Logger LOGGER = LoggerFactory
        .getLogger(MyObject.class);
Run Code Online (Sandbox Code Playgroud)

对此:

2)

private static final Logger LOGGER = LoggerFactory
        .getLogger("MyObject");
Run Code Online (Sandbox Code Playgroud)

所以,当我重构/重命名MyObjectMyThing参考就会自动为我更新。

然而.. 1) 我得到了笨拙的输出: com.mycompany.mypackage.MyObject

我只需要MyObject在日志中看到...

可选:如果您知道如何\e[0;33m根据日志级别有选择地为输出着色(例如),那将会很高兴知道。

Luh*_*har 5

根据该APISimpleLogger,你可以尝试设置org.slf4j.simpleLogger.showShortLogName你的属性LOGGER实例true

从API:

org.slf4j.simpleLogger.showShortLogName-true如果您希望名称的最后一个组成部分包含在输出消息中,请设置为。默认为false.

  • 惊人的。这就是我所需要的。公认!我只知道如何通过 CLI(例如`java -Dorg.slf4j.simpleLogger.showShortLogName=true`)进行设置,有没有办法以编程方式或通过配置文件来做到这一点?您能否在您的答案中添加一个非常简短的示例,以使其完整以供后代使用? (3认同)