Java 测试期间的详细日志记录,但在发布的应用程序中的简短日志记录
我正在制作一个基于Maven的java库,使用的日志如下:Java 测试期间的详细日志记录,但在发布的应用程序中的简短日志记录,java,unit-testing,logging,Java,Unit Testing,Logging,我正在制作一个基于Maven的java库,使用的日志如下: import java.util.logging.Logger; private static final Logger LOG = Logger.getLogger(MyLibraryClass.class.getName()) 我在这个库中编写了很多日志,这对于调试库的流程非常有用,特别是在JUnit测试期间,但是我创建的这个应用程序,我不希望它向客户端应用程序(将使用这个库的应用程序)显示日志。
import java.util.logging.Logger;
private static final Logger LOG
= Logger.getLogger(MyLibraryClass.class.getName())
我在这个库中编写了很多日志,这对于调试库的流程非常有用,特别是在JUnit测试期间,但是我创建的这个应用程序,我不希望它向客户端应用程序(将使用这个库的应用程序)显示日志。因为它太冗长了
我如何控制哪个登录到客户端应用程序的日志视图中。库中的INFO level
等日志不一定会显示在客户端/示例应用程序中
这是我的最终目标:
- 在 图书馆项目
- 但不向客户机应用程序显示这些“详细”日志,而无需客户机应用程序故意配置/抑制库中的日志
我不确定你是否在找这个
LOGGER.setLevel(Level.INFO);
在log4j.properties或log4j.xml中配置日志级别 对单元测试使用单独的log4j.properties 在maven中,将log4j.properties或log4j.xml文件放入src/test/resources中 或者在运行junit时使用CLI属性
-Dlog4j.configuration=<path to properties file>
-Dlog4j.configuration=
客户端应用程序需要自己的测试。我不明白,如果客户端应用程序中存在问题(只是一个死胡同),为什么客户端库不应该发布
我看到两个maven项目
- 库(带有库测试)
- 对库具有依赖关系的客户端应用程序(带有客户端应用程序测试)
/src/test/java/resources/logging.properties
在客户端应用程序中,在
/src/main/java/resources/logging.properties
这样的noop配置如下所示:
handlers= java.util.logging.ConsoleHandler
level= SEVERE
您对日志消息的优先级太高。所有信息、警告和错误消息都应该是您希望用户看到的消息。如果消息只对开发人员有用,那么它应该是DEBUG或TRACE。然后将日志润滑配置为仅显示信息、警告和错误消息 这是log4j.properties文件的内容,而不是logging.properties文件的内容如果您使用的是log4j,请参阅