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

标签 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 主启动

我想查看
2019-02-06 07:09:09 INFO SIMPLEXScheduler main Start

最佳答案

Is there a format option I can use with the 2$ field?

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

Or does this require writing a new Handler?

一种选择是编写新的 java.util.logging.Formatter 。您只需安装 java.util.logging.Filter 即可实现一些技巧。更改 class name但你应该避免这样做。使用logp相反,按照 P.J.Meisch 的建议

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

如果您有权访问 JavaMail,则可以使用 com.sun.mail.util.logging.CompactFormatter它只会打印简单的类名。权衡是它将打印 compact stack traces对于异常(exception)情况。参数 1 到 6 的顺序与 SimpleFormatter 相同,因此可以使用相同的模式。

如果您不想包含 JavaMail,则可以使用 com.sun.mail:logging-mailhandler相反, Artifact 。

关于java - 在java日志格式化程序中使用简单的类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54554045/

相关文章:

java - 使用 JAX-WS + JAXB 作为返回类型的接口(interface)

java - 从 servlet 读取外部文件

java - 如何更改 JBoss EAP 7 日志中打印的日志级别标识符?

java - 以 maner 方式设置 JTextField 宽度以包装给定文本

java - 在终端中使用 JDBC 将 Java 连接到 Oracle 数据库

java - 格式化 Java 日志记录

java - 我想将 "08:30:00"转换为 P00DT08H30M。在java中转换为所需输出的最佳方法是什么?

tomcat - 在运行时重新加载 tomcat 日志记录?

java - 使用内置的 Guice 注入(inject)来注释静态 java.util.Logger 实例的正确习惯用法是什么?

java - 将 java.util.logging 与 JDBC 驱动程序一起用于 HyperSQL 数据库引擎