gpt4 book ai didi

java - tomcat 获得用于创建 ajp 连接器的套接字的最佳日志级别

转载 作者:行者123 更新时间:2023-11-28 22:02:56 26 4
gpt4 key购买 nike

我们有一个非常默认的 apache2(2.2),mod_jk(1.2.30) 连接到同一个主机上的 tomcat(6),没有负载平衡器,只配置了 1 个 worker。

为了调试特定问题,我尝试增加 ajp 连接的 tomcat 日志级别。

我特别感兴趣的是关闭/打开套接字,以及这样做的原因。

但是我无法为此找到正确的日志记录参数。

查看 tomcat-6.0-doc/api/我无法找到创建套接字的正确类。

关闭套接字对于一些类来说是可能的,我希望我能理解。日志记录属性

handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

1catalina.org.apache.juli.FileHandler.level = FINEST
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.FileHandler.prefix = catalina.

java.util.logging.ConsoleHandler.level = FINEST
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

org.apache.catalina.core.AprLifecycleListener.level = ALL
org.apache.catalina.connector.level = FINEST
org.apache.coyote.level = FINEST
org.apache.tomcat.util.net.AprEndpoint. = FINEST
org.apache.tomcat.level = FINEST
org.apache.tomcat.jni.Socket = FINEST

server.xml重要部分:

<!--APR library loader. Documentation at /docs/apr.html -->
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html -->
<Listener className="org.apache.catalina.core.JasperListener" />
<!-- JMX Support for the Tomcat server. Documentation at /docs/non-existent.html -->
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" address="localhost" />
<Listener className="org.apache.jk.config.ApacheConfig" modJk="/usr/lib/apache2/modules/mod_jk.so" />

mod_jk workers.properties

worker.list=worker1
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009

worker.worker1.connection_pool_size=1

所以我的问题:

我怎样才能让套接字创建/关闭记录下来?我需要为此登录的类的名称是什么?

或者我是否已经需要 Valgrind 或类似工具?

我需要这个的原因(只是为了完成)

在我们的测试环境中,大约 1% 的请求来自标准浏览器,导致 502 错误网关或 503 服务暂时不可用 http 状态代码。

Mod_jk 跟踪日志确实显示错误的_message_format,但我们可以告诉 wireshark 日志和 ajp 数据都是有效的。

错误是可重现的,只是不完全针对 1 个特定请求。如果我执行 200 个并行请求(只读),我至少可以触发错误两次。

提前致谢

最佳答案

无论是 java.net.socket 还是 jni.socket 实现 org.apache.tomcat.jni.Socket 都不会“正常”记录日志,即使将日志级别设置为最好.没有用于日志记录的简单代码。唯一可能发生的事情是在出现错误的情况下出现异常。

但是可以使用 jconsole 和/或 jVisualVM 跟踪相应的类。

对我们来说,java.net.socket 是我们进一步调试问题所需的类。

关于java - tomcat 获得用于创建 ajp 连接器的套接字的最佳日志级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21937642/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com