2013-03-11 122 views
0

我運行一個.jar文件,當我做運行它,我看到正在執行我的方法...Java控制檯日誌如何隱藏方法執行

INFO: ------- Order #295389 
Mar 11, 2013 2:10:31 PM com.production.tasks.ImportNewOrders checkForOrders 
INFO:  - Order has already been imported 
Mar 11, 2013 2:10:31 PM com.production.tasks.ImportNewOrders checkForOrders 
INFO: ...finished fetching orders, will check again in 60 seconds 

我寧願只看到...

INFO: ------- Order #295389 
INFO:  - Order has already been imported 
INFO: ...finished fetching orders, will check again in 60 seconds 

如何從輸出中阻止方法執行?

回答

0

這不是log4j這樣做,但它實際上是記錄每個方法調用的java.util.logging

這將隱藏方法調用:

System.setProperty("java.util.logging.SimpleFormatter.format", "%4$s: %5$s%n");

1

這不是標準的java輸出。看起來你有一個日誌記錄框架(可能是log4j,slf4j,logback,java logger或commons logging)。您必須配置日誌記錄才能不打印方法信息。

+0

我嘗試添加'System.setProperty( 「org.apache.commons.logging.Log」,「org.apache.commons.logging.impl。 NoOpLog「);'我的主要(),它並沒有讓它消失。雖然,我也沒有積極使用apache日誌commons - 我正在使用'java.util.logging.Logger' - 我確實包含了apache commons,並且出於其他原因使用它。 – Webnet 2013-03-15 15:39:29

+0

如果您使用的是java記錄器,那麼設置commons屬性將不會執行任何操作。你的日誌處理程序是什麼樣的(它們設置了什麼樣的模式)? – 2013-03-15 20:42:36

1

您必須將日誌級別更改爲僅記錄更高級別的日誌。它現在是INFO(從您輸出的問題中猜出),您可以將它設置爲WARN,它只會記錄警告或更高級別的消息。您可以在配置文件中找到這些設置。有關不同級別的更多信息,請通過此link for log4j。

+0

那也不是 – Webnet 2013-03-15 15:40:40

1

如果您使用Log4J,請找到您的log4j.properties文件。請注意使用的ConversionPattern屬性。特別是,我認爲你需要刪除C(完全合格的類名)和M(方法名)。有關選項的完整列表,請參閱here