我已经找到了大量关于如何为SSL,TLS和类似功能启用javax.net.debug的文档,但是即使在参考文档中,我也没有找到如何以编程方式完全禁用它来覆盖以前的设置。
我的确切问题是,在Tomcat实例中,另一个应用程序执行以下指令:
function my_posts_where( $where ) {
$where = str_replace("meta_key = 'blocks_$", "meta_key LIKE 'blocks_%", $where);
return $where;
}
add_filter('posts_where', 'my_posts_where');
这会导致 catalina.out 文件迅速增大尺寸,这是不必要的。
我已经尝试使用相同的指令从Java代码覆盖它,并使用“ none ”,“ off ”和“ false “值,但没有结果,仍然记录了大量TLS内容。
例如,在我的应用程序中,我添加了以下说明:
System.setProperty("javax.net.debug","all");
但是我仍然有完整的日志。
答案 0 :(得分:1)
问题在于,tomcat应用程序将覆盖您从命令行中提供的任何值,并且如果无法控制此代码的作用,则无法从命令行参数中真正覆盖它。虽然安全管理器可以阻止设置属性,但只能通过引发异常来做到这一点,这可能会引起更多的问题,而不是解决的问题。
在这种情况下,唯一的选择是在其他代码对其进行设置之后,通过代码自行设置值。
对于javax.net.debug
,需要在运行sun.*
Debug类的静态静态初始值设定项之前,将选项设置为它的最终值消息将会出现。可以使用任何不用作某些选项的值(空字符串,或者没有一个应禁用它)来禁用它。如果稍后设置,它将无法在事后将其关闭(除非进行一些不良的反射黑客来访问该类的内部,只有在Java 8和更早的版本中才能实现)>
答案 1 :(得分:0)
如果有一些启用SSL日志记录的VM参数,请尝试将其删除,此外,您可以检查eclipse.ini文件以查看是否在其中声明了这些参数。
答案 2 :(得分:0)
您可以通过从 IDE 的运行配置中删除以下内容来禁用它:
-Djavax.net.debug=all