我发现了一个不错的 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/