我正在创建一个基于Maven的java库,其中使用的日志记录是:
import java.util.logging.Logger;
private static final Logger LOG
= Logger.getLogger(MyLibraryClass.class.getName())
我在这个库中编写了很多日志,这在调试库的流程时非常有用,特别是在JUnit测试期间,但是我创建了这个应用程序,我不希望它将日志显示给客户端应用程序(将使用此库的应用程序)。因为它太冗长了。
如何控制哪些登录到客户端应用程序的日志视图中。来自库的INFO level
等日志不一定会显示在客户端/示例应用程序中?
这是我的最终目标:
客户端库 - 是Java应用程序使用的项目;这是我正在研究的项目。这会生成不应在客户端应用程序中显示的日志。
客户端应用程序 - 是使用Java的项目/应用程序 文库
答案 0 :(得分:1)
我不确定你是否在寻找这个
LOGGER.setLevel(Level.INFO);
答案 1 :(得分:1)
Client-App需要自己的测试。我不明白为什么如果客户端应用程序中存在问题(仅仅是一个死胡同),不应该发布Client-lib。
我看到两个maven项目。
所以你在图书馆里有一个noop-config文件
/src/test/java/resources/logging.properties
并在Client-App中的
中的noop-config文件/src/main/java/resources/logging.properties
这样的noop-config看起来像这样:
handlers= java.util.logging.ConsoleHandler
level= SEVERE
答案 2 :(得分:0)
在log4j.properties或log4j.xml中配置日志级别
使用单独的log4j.properties进行单元测试。
在maven中将log4j.properties或log4j.xml文件放入src / test / resources
运行junit时使用CLI属性
-Dlog4j.configuration=<path to properties file>
答案 3 :(得分:0)
您的日志消息优先级过高。所有INFO,WARN和ERROR消息都应该是您希望用户看到的消息。如果消息仅对开发人员有用,则应该是DEBUG或TRACE。然后配置您的日志记录库,以仅显示INFO,WARN和ERROR消息。