2013-03-11 108 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