在java日志格式化程序中使用简单的类名

Har*_*air 5 java formatter java.util.logging

我有一个 SimpleFormatter 用于使用字符串登录我的应用程序
"%1$tF %1$tT %4$-7s %2$s %5$s%6$s%n"

我想使用简单的类名而不是规范名称。是否有可以与 2$ 字段一起使用的格式选项?或者这是否需要编写一个新的处理程序?

例如,而不是
2019-02-06 07:09:09 INFO simplex.tools.SIMPLEXScheduler main Start

我倒要看看
2019-02-06 07:09:09 INFO SIMPLEXScheduler main Start

jme*_*ens 1

是否有可以与 2$ 字段一起使用的格式选项?

SimpleFormatter仅支持java.util.Formatter中功能。目前无法将类名格式化为简单类名。

或者这是否需要编写一个新的处理程序?

一种选择是编写一个新的java.util.logging.Formatter您可以通过安装java.util.logging.Filter来更改类名来完成一些技巧,但您应该避免这样做。按照PJMeisch的建议,使用logp代替

免责声明:我是JavaMail项目中包含的com.sun.mail.util.logging包的内容开发人员。

如果您有权访问 JavaMail,则可以使用 com.sun.mail.util.logging.CompactFormatter 它只会打印简单的类名。代价是它将打印异常的紧凑堆栈跟踪。参数 1 到 6 的顺序与 SimpleFormatter 相同,因此可以使用相同的模式。

如果您不想包含 JavaMail,那么您可以使用com.sun.mail:logging-mailhandler工件。