jar/library 创作的最佳方法是什么?
What's the best approach in jar/library creation?
我需要创建 jar/library 来做一些事情并写一些日志。对于日志,我正在考虑 java.util.logging.Logger 与 Logback。所以问题是:
我应该更喜欢使用 java 开箱即用的日志记录还是完全可以包含一些第三方工具?
或者这应该纯粹是我的需要,使用哪个并不重要?
使用外观,例如 slf4j。从在他们的应用程序中使用你的 jar 的人的角度来考虑它。他们会希望所有的日志记录都集中在一个地方,无论是记录您的 jar 还是应用程序的其余部分,他们都不想单独配置您的库的日志记录。
使用日志外观意味着您的库将写入应用程序其余部分使用的任何日志。该应用程序应该负责日志记录,而不是您的 jar。
对于使用哪个外观,slf4j 似乎是更好的选择,公共日志记录在涉及多个类加载器时可能会遇到麻烦。参见 Difference between Simple Logging Facade for Java and Apache Commons Logging
可以使用 System.Logger
System.Logger instances log messages that will be routed to the underlying logging framework the LoggerFinder uses. System.Logger instances are typically obtained from the System class, by calling System.getLogger(loggerName) or System.getLogger(loggerName, bundle).
跨图书馆记录器总是很痛苦。 Java.util.logging 将日志记录合并到标准版中。自 Java 9 以来,有一种集成记录器的标准版方法。
这将选择权留给了图书馆用户。不再是混音、布鲁斯版本等等。直接应用程序中的确切记录器可能是 java util Logger.
我需要创建 jar/library 来做一些事情并写一些日志。对于日志,我正在考虑 java.util.logging.Logger 与 Logback。所以问题是: 我应该更喜欢使用 java 开箱即用的日志记录还是完全可以包含一些第三方工具?
或者这应该纯粹是我的需要,使用哪个并不重要?
使用外观,例如 slf4j。从在他们的应用程序中使用你的 jar 的人的角度来考虑它。他们会希望所有的日志记录都集中在一个地方,无论是记录您的 jar 还是应用程序的其余部分,他们都不想单独配置您的库的日志记录。
使用日志外观意味着您的库将写入应用程序其余部分使用的任何日志。该应用程序应该负责日志记录,而不是您的 jar。
对于使用哪个外观,slf4j 似乎是更好的选择,公共日志记录在涉及多个类加载器时可能会遇到麻烦。参见 Difference between Simple Logging Facade for Java and Apache Commons Logging
可以使用 System.Logger
System.Logger instances log messages that will be routed to the underlying logging framework the LoggerFinder uses. System.Logger instances are typically obtained from the System class, by calling System.getLogger(loggerName) or System.getLogger(loggerName, bundle).
跨图书馆记录器总是很痛苦。 Java.util.logging 将日志记录合并到标准版中。自 Java 9 以来,有一种集成记录器的标准版方法。
这将选择权留给了图书馆用户。不再是混音、布鲁斯版本等等。直接应用程序中的确切记录器可能是 java util Logger.