我正在制作一个基于maven的java库,使用的日志如下:
import java.util.logging.Logger;
private static final Logger LOG
= Logger.getLogger(MyLibraryClass.class.getName())
我在这个库中编写了这么多日志,这对于调试库的流非常有用,特别是在junit测试期间,但是我创建的这个应用程序,我不希望它向客户端应用程序(将使用这个库的应用程序)显示日志。因为太冗长了。
我如何控制哪个登录到客户端应用程序的日志视图。日志如 INFO level
在客户端/示例应用程序中不一定显示库中的?
我的最终目标是:
在库项目中运行单元测试时,使日志尽可能详细
但不向客户机应用程序显示这些“详细”日志,而无需客户机应用程序故意配置/抑制库中的日志
客户机库-是java应用程序使用的项目;这就是我正在做的项目。它生成不应在客户端应用程序中显示的日志。
客户机应用程序-是使用java库的项目/应用程序
4条答案
按热度按时间tv6aics11#
我不确定你是否在找这个
lf3rwulv2#
在log4j.properties或log4j.xml中配置日志级别
对单元测试使用单独的log4j.properties。
在maven中,将log4j.properties或log4j.xml文件放入src/test/resources中
或者在运行junit时使用cli属性
ee7vknir3#
客户端应用程序需要自己的测试。我不明白为什么客户端lib不应该被释放,如果在客户端应用程序中有任何问题(只是一个死胡同的情况)。
我看到两个maven项目。
库(带库测试)
对库具有依赖关系的客户端应用程序(带有客户端应用程序测试)
所以你在库中有一个noop配置文件
在客户端应用程序中
这样的noop配置如下所示:
nmpmafwu4#
您对日志消息的优先级过高。所有信息、警告和错误消息都应该是您希望用户看到的消息。如果消息只对开发人员有用,那么应该是debug或trace。然后将日志润滑配置为仅显示信息、警告和错误消息。