2011-10-08 68 views
1

我正在创建一个java开放源代码实用程序包,我想知道是否可以将日志记录(如log4j)包含到该包中。将日志记录添加到实用程序包中

如果我将log4j包含到我的包中,我将在哪里输出日志文件,我不希望日志文件位于用户的错误位置,但我仍然想创建日志调试。

此外还有用户希望将我的日志集成到项目本身的问题。 以及他将如何做到这一点。

你会推荐什么是做这件事的最好方法?

谢谢。

回答

3

我认为正常的做法是在包中不包含Log4j Jar,并让库用户决定使用哪个版本的Log4j。

此外,您不必担心在哪里输出日志文件,因为用户将拥有自己的log4j.properties或log4j.xml配置。

库用户还可以决定从库中使用哪种级别的日志记录或者是否禁止它。例如,对于Amazon AWS库,我可以告诉我只需要警告消息或者输出过于冗长。在这种情况下,我添加到我的log4j.properties:

log4j.logger.com.amazonaws=WARN 

说,我也想提醒你,一个现代的替代log4j的是SL4J

+0

所以如果我没有在包中包含log4j我将如何去生产日志? – Gleeb

+1

我的意思是你使用你的log4j JAR进行开发,但是当你发布你的JAR时你不包含它,用户将包含他自己的。它更清楚吗? – stivlo

+0

是的。我只是意识到,记录器类不是log4j的一部分,但实际上是java.util的一部分,但最后一个问题是,如果用户不在他的应用程序中包含log4j。当我写入记录器时会发生什么,但是如果明白我的意思,没有log4j来记录我的日志。 – Gleeb

相关问题