![](/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.