【发布时间】:2011-02-17 06:04:17
【问题描述】:
如何禁用java程序中使用的java库(jar)的记录器(打印输出)?
谢谢
更新:有问题的库使用 java 中的内置记录器类 (java.util.logging.Logger)。
【问题讨论】:
如何禁用java程序中使用的java库(jar)的记录器(打印输出)?
谢谢
更新:有问题的库使用 java 中的内置记录器类 (java.util.logging.Logger)。
【问题讨论】:
查看how can i disable the default console handler, while using the java logging api ?的答案
或者,将日志级别设置为 OFF,如日志级别的 Javadocs 中所示。引用:
此外,还有一个级别 OFF 可用于关闭日志记录,还有一个级别 ALL 可用于启用所有消息的日志记录。
【讨论】:
将该包的日志级别设置为FATAL。这实际上不会关闭 jar 中的所有日志消息,但应该最小化。另请注意,如果您有多个包结构,则必须添加单独的行
log4j.logger.com.foo=FATAL
【讨论】:
如果您使用 log4j,最简单的方法是提高特定库的日志记录级别,例如 warn 或 error。
例如,如果您不希望所有 Apache API、Spring API 和 Hibernate API 使您的日志文件混乱,您可以执行以下操作:-
<logger name="org.apache">
<level value="warn" />
</logger>
<logger name="org.springframework">
<level value="warn" />
</logger>
<logger name="org.hibernate">
<level value="warn" />
</logger>
这样,这些库中的所有debug 和info 都不会显示。
【讨论】:
除了提高日志级别之外,您还可以告诉库使用 NOP 记录器 - 请参阅 here。 NOP 记录器将默认不做任何事情,这正是您想要的。
编辑后确定:如果您可以告诉库它应该使用哪个记录器(并且如果您无法访问记录对象,我认为任何方法都不会起作用),只需制作您自己的 NopLogger,即扩展记录并用空方法覆盖所有方法,
【讨论】: