![]() |
1
15
如果它使用日志框架(log4j、commons logging等),则可以编辑/创建一个属性文件来指示高日志树占用。在log4j中,如下所示:
如果库正在使用
|
![]() |
2
7
你有没有试过用
|
![]() |
3
5
我投票赞成简的回答,并想补充: 使用setout意味着您不能再在程序中打印到system.out。 你可以的
首先保存它,然后调用setout更改它——然后打印到oldout。 我已经把它用作一个小型的日志记录器——抓取system.out,用我自己的流替换它,让我自己的流抓取一个堆栈跟踪并找出调用方法,这样它就可以在转发到原始系统out之前添加方法名。 速度非常慢,但很适合调试。有一个设置,这样您就可以恢复到只打印字符串、隐藏所有输出或筛选消息来自哪个方法(这是我的主要用法,隐藏所有其他垃圾,这样我就可以看到自己的输出)。 |
![]() |
4
2
考虑使用aspectj,它可以用您选择的语句(一个日志语句)替换所有出现的system.out.println()。这也适用于第三方JAR文件(查找加载时编织)。 |
![]() |
5
0
我认为没有哪个像样/健全的库使用system.out来记录消息。所以我可以安全地假设它使用某种日志框架。将特定包配置为更高的日志记录级别,如“错误”或“致命”,这样您就不会看到这些消息。 |
![]() |
6
0
库可能使用logger、log4j或slf4j。您可以为该记录器创建一个配置文件,然后将日志级别设置为warn或更高。这将阻止打印信息。 |
![]() |
7
0
如果lib使用prints,我将使用asm将所有sys.out.printxxx替换为对另一个类的调用,该类的方法签名与吞咽的方法类似。 |