java - 在库中捆绑 log4j.properties - 糟糕的风格还是什么?

标签 java logging log4j spark-java

我发现了一个不错的 Java 小型 Web 请求框架:Spark . API 看起来不错而且很有前途,但是库包本身很奇怪。撇开它建议使用快照工件作为依赖项这一事实不谈。撇开它使用 log4j 进行日志记录这一事实(现在图书馆倾向于使用 jcl 或 slf4j),有时使用 System.out.println。但它在 spark-xxx.jar 中捆绑了自己的 log4j.properties。我花了一个小时来调查为什么当 log4j.properties 肯定存在于我的类路径中时我的项目会提示 log4j 配置。 -Dlog4j.debug=true 给出了答案,log4j 承认它已经从 spark jar 加载了 log4j.properties。

我想知道这(作为一个库并使用 log4j 和捆绑 log4j.properties)是否有一些动机,或者它是否只是蹩脚的。

最佳答案

将 log4j.properties 与库捆绑在一起是一种糟糕的风格。

对于 spark,您可能会争辩说它更接近应用程序服务器(如 tomcat),在这种情况下它可以配置日志记录。

我想说的是,控制 start(.sh|.bat) 脚本的人应该配置日志记录,并且 log4j 配置文件几乎不应该放在 jar 中。

关于java - 在库中捆绑 log4j.properties - 糟糕的风格还是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6964634/

相关文章:

java - 如何检查对 ArrayList 中的元素进行排序需要多少遍?

java - 如何让进程监视您的程序以在程序退出时重新启动它

java - cvc-complex-type.2.4.c:匹配的通配符是严格的,但是找不到元素 'hdp:configuration'的声明

python 3.6+ 记录器记录 pandas 数据框 - 如何缩进整个数据框?

java - 使用 XML 文件 (log4j2.xml) 配置 Log4j 2

java - log4j 需要 JSF jar 吗?

java - AtomicReferenceFieldUpdater疑问

logging - 将 log4net 与 WebApi 结合使用 - 在整个实例中保持相同的相关 ID

ios - 为什么包装 os_log() 会导致无法正确记录 double ?

java - Log4j 修剪公共(public)类别前缀