Java 日志接口(interface)

标签 java logging

如果我必须分发一个特定的框架,比如可以在许多项目中使用的自定义验证框架,我该如何处理这个框架内的日志记录,以便它使用与它正在使用的项目相同的日志记录方法?即我已经用通常的 debug、warn、info... 方法编写了一个记录器接口(interface),这个接口(interface)的实现可以使用 log4j 或任何其他日志记录方法来实现这些方法。如果我将其作为 jar 分发,不同的项目如何将此 jar 与其日志框架一起使用?

最佳答案

我强烈建议不要编写另一个日志记录框架,而是重新编写应用程序代码以使用 SLF4J 日志记录 API。所有与其他日志记录实现接口(interface)的工作都已经完成,并且在业界众所周知。

一个额外的好处是您可以获得 {} 占位符,这让您可以做

 log.debug("a={}, b={}", a, b);

并且 a.toString() 和 b.toString() 仅在字符串实际记录时调用。这允许大量日志语句实际上不会执行,除非您需要它们在调试设置中运行。

关于Java 日志接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6978443/

相关文章:

c++ - 系统日志不转发远程消息

sql-server - 登录 SSIS 的最佳方式

python - 有没有办法通过配置文件配置 Python 日志格式化程序以将时间记录为 Unix 时间戳?

java - IntelliJ IDEA 错过了模块中的测试

java - org.apache.commons.dbcp.BasicDataSource 和 com.ibm.db2.jcc.DB2DataSource 有什么区别

java - 使用 Kotlin 时出现“java.lang.NumberFormatException : Invalid double' for European languages,”

java - Hadoop CustomInputFormat NullPointerException

objective-c - iOS-应用程序日志记录测试和生产代码

linux - 如何为每个命令向 bash 脚本日志添加时间戳并排除 set、echo、log?

java - 抛出异常的问题