Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将日志记录添加到实用程序包_Java_Log4j_Logging - Fatal编程技术网

Java 将日志记录添加到实用程序包

Java 将日志记录添加到实用程序包,java,log4j,logging,Java,Log4j,Logging,我正在创建一个java开源实用程序包,我想知道是否可以将日志记录(如log4j)包含到该包中 进退两难的是,如果我将log4j包含在我的包中,我将在哪里输出日志文件,我不希望用户将日志文件放在错误的位置,但我仍然希望创建用于调试的日志 还有一个问题是,用户希望将我的日志集成到项目本身中。 他将如何做到这一点 你认为最好的方法是什么 谢谢。我认为通常的做法是不在包中包含Log4j Jar,让库用户决定使用哪个版本的Log4j 另外,您不必担心日志文件输出到哪里,因为用户将拥有自己的log4j.pr

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

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

还有一个问题是,用户希望将我的日志集成到项目本身中。 他将如何做到这一点

你认为最好的方法是什么


谢谢。

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

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

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

log4j.logger.com.amazonaws=WARN

话虽如此,我还想提醒您,log4j的现代替代品是。

因此,如果包中没有包含log4j,我将如何开始生成日志?我的意思是,您当然会使用log4j JAR进行开发,但当您发送您的JAR时,您没有包含它,用户将包含自己的日志。更清楚吗?是的。我刚刚意识到logger类不是log4j的一部分,而是java.util的一部分。不过最后一个问题是,如果用户没有将log4j包含到他的应用程序中。如果你理解我的意思,那么当我向日志记录器写入数据时,如果没有log4j来捕获我的日志,会发生什么呢?它会将输出作为默认行为打印到控制台吗?还有org.apache.log4j.Logger——java.util.logging.Logger是java日志API的一部分,它是一种包装器,将根据类路径中的内容尝试使用日志框架。