最近我向github发布了我的开源java game server代码并遇到了以下困境“我应该使用哪种日志记录”。我希望我的库能为最终开发人员提供最“易用性”。我希望从这个问题中创建一个伪维基,以便面临同一问题的其他人可以有一个参考点。
1)如果您的开源项目是一个简单的Java库,那么可用于记录的选项有哪些
一个。使用您自己的记录逻辑
湾打印到控制台,错误
C。使用像log4j,slf4j等库
2)最佳做法是什么?以上哪一项是对开源库的一般偏好?
3)对于一些着名的日志框架,如log4j,slf4j,commons-logging等,在选择它作为日志库时需要考虑的已知问题。
4)我选择的日志框架是否会影响另一个使用我的库?如果我使用特定的库,是否存在不兼容的可能性?
如果您有一些额外的评论,例如“仅登录到控制台”,“不使用日志记录”等,请说明理由。
答案 0 :(得分:7)
从不直接写入控制台;)如果有人使用您的图书馆,他可能希望拥有自己的控制台,而不是您的日志。
slf4j(和commons-logging)不是日志框架。它是一个抽象层,它允许您对一个接口进行编程并使用您的(或库的最终用户)选择的实现,无论是log4j,java日志记录还是其他。我会选择它,因为它将实现的选择留给了用户。
答案 1 :(得分:3)
我使用SLF4J作为外观,使用Logback作为日志记录实现。我很满意这种配置。我能够将一些第三方库重定向到Logback。他们使用不同的测井技术。