![](/img/trans.png)
[英]How to exclude dependencies from maven assembly plugin : jar-with-dependencies?
[英]How to turn off all logging (even for dependencies) in a standalone command-line app (jar-with-dependencies)
我有一个依赖于大量库的Java应用程序。 我使用Assembly Maven插件将整个内容打包到一个JAR中。
该库通常用于常规的JAR依赖项,因此客户端将控制日志记录。 但是,当将其打包为独立的可执行JAR时,我不想显示通常在服务器日志中看到的所有这些日志。
我显然不控制使用哪种类型的日志库依赖项。 我main
使用JDK java.util.logging
。
如何以编程方式关闭所有日志记录(或仅将其保留在SEVERE
级别)?
我试图做什么,建议在这里 (与我的级别设置为变化SEVERE
)在我一开始main
的,但所有的日志仍然显示。
执行JAR时,如何使日志停止在命令行上显示?
执行JAR时,如何使日志停止在命令行上显示?
如果您想使用繁重的操作,可以通过简单地关闭out和error流来停止所有控制台输出:
System.out.close();
System.err.close();
请记住,没有办法重新打开这些流。
如何以编程方式关闭所有日志记录(或仅将其保留在SEVERE级别)?
对于JUL,您可以按照说明创建logging.properties文件。
我显然不控制使用哪种类型的日志库依赖项...
您必须包含这些框架的配置文件才能将其关闭。
如何以编程方式关闭所有日志记录(或仅将其保留在SEVERE级别)?
子记录器将从根记录器继承。 您可以将根记录器设置为“严重”,并将其处理程序设置为“严重”:
private static final Logger[] PINS = new Logger[]{Logger.getLogger("")};
static {
for (Logger l : PINS) {
l.setLevel(Level.SEVERE);
for (Handler h : l.getHanders()) {
h.setLevel(Level.SEVERE);
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.