【问题标题】:Choice of logging framework for open source java project [closed]开源java项目的日志框架选择[关闭]
【发布时间】:2012-03-04 18:15:15
【问题描述】:

最近我在 github 上发布了我的开源 java game server 代码,并面临以下困境“我应该使用哪个日志记录”。我希望我的库对最终开发人员具有最大的“易用性”。我希望从这个问题中创建一个伪wiki,以便其他面临相同问题的人可以有一个单一的参考点。

1) 如果您的开源项目是一个简单的 java 库,那么有哪些可用于日志记录的选项。
一种。使用您自己的日志记录逻辑
湾。打印到控制台,错误
C。使用 log4j、slf4j 等库
2) 最佳实践是什么?以上哪一项是开源库的普遍偏好?
3) 对于一些著名的日志框架,如 log4j、slf4j、commons-logging 等,在选择它作为日志库时需要考虑哪些已知问题。
4) 我选择的日志框架会影响另一个使用我的库吗?如果我使用特定的库,是否存在不兼容的可能性?

如果您有一些额外的 cmets,例如“仅记录到控制台”、“不使用日志记录”等,请说明理由。

【问题讨论】:

    标签: java open-source log4j slf4j apache-commons-logging


    【解决方案1】:

    从不直接写入控制台;)如果有人使用您的库,他可能希望自己拥有控制台,而不是您的日志。

    slf4j(和 commons-logging)不是一个日志框架。它是一个抽象层,可让您对一个接口进行编程并使用您(或您的库的最终用户)选择的实现,无论是 log4j、java 日志记录还是其他任何东西。我会这样做,因为它将实现的选择权留给了用户。

    【讨论】:

    • 使用 slf4j/commons-logging 是否存在兼容性问题?意思是,如果我在我的库(a)中使用它,而其他一些库(b)使用不同版本的 slf4j 并且开发人员同时使用 a 和 b,那么会有问题。
    • @Abe 我不知道。显然,如果使用了两个版本的 slf4j,可能会有冲突,但我想你可以扔掉旧版本,或者让类加载器决定使用什么。他们试图拥有一个稳定的 api,所以这不重要。
    【解决方案2】:

    我使用 SLF4J 作为外观,使用 Logback 作为日志实现。我对这个配置很满意。我能够将一些第三方库日志重定向到 Logback。他们使用不同的日志记录技术。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-29
      • 1970-01-01
      • 2010-09-16
      • 2010-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多