开源Java项目的日志框架选择

Abe*_*Abe 2 java open-source log4j slf4j apache-commons-logging

最近我向github 发布了我的开源java游戏服务器代码,并遇到了"我应该使用哪种日志"的困境.我希望我的库能为最终开发者提供最"易用性".我希望从这个问题中创建一个伪维基,以便面临同一问题的其他人可以有一个参考点.

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

如果你有一些额外的评论,如"仅登录到控制台","不使用日志记录"等,请证明合理.

sou*_*eck 7

永远不要直接写入控制台;)如果有人使用你的图书馆,他可能想要自己的控制台,而不是你的日志.

slf4j(和commons-logging)不是日志框架.它是一个抽象层,它允许您对一个接口进行编程并使用您的(或库的最终用户)选择的实现,无论是log4j,java日志记录还是其他.我会选择它,因为它将实现的选择留给了用户.