我知道这是一个旧线程,但可能对寻找答案的人有用。
对于 AXIS-1 服务器端日志记录,更新您的 server-config.wsdd,如下所示。 server-config.wsdd 位于您的 war 文件的 WEB-INF 文件夹下。
一个新的日志处理程序。文件名和路径是可配置的。
<handler name="log" type="java:org.apache.axis.handlers.LogHandler">
<parameter name="LogHandler.fileName" value="/tmp/req-res-axis.log" />
</handler>
您也可以使用LogHandler.writeToConsole 参数,其值为"true" 来登录您的控制台日志。
然后更新<globalConfiguration> 部分以具有
<requestFlow>
<handler type="log"/>
</requestFlow>
<responseFlow>
<handler type="log"/>
</responseFlow>
如果requestFlow 和responseFlow 包含其他处理程序,则将日志作为第一个处理程序。
这应该只用于调试目的而不是用于生产。由于日志记录是幼稚的,并且在没有任何缓冲区的情况下对文件执行正常的写入操作。其次,由于没有翻转机制,日志文件将增长到 GB。
对于 AXIS-1 客户端日志记录,更新您的 client-config.wsdd,如下所示。 client-config.wsdd 应该直接进入您的 classpath 下的 classpath 配置的根文件夹下,而不是在任何子文件夹中。最佳位置是您的 log4j.xml 或 log4j.properties 文件所在的同一目录(感谢上面的#MukeshKoshyM 帖子)。
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<handler name="log" type="java:org.apache.axis.handlers.LogHandler" >
<parameter name="LogHandler.fileName" value="/tmp/axis_req_res.log"/>
</handler>
<globalConfiguration>
<requestFlow>
<handler type="log" />
</requestFlow>
<responseFlow>
<handler type="log" />
</responseFlow>
</globalConfiguration>
<transport name="http"
pivot="java:org.apache.axis.transport.http.HTTPSender" />
</deployment>
服务器端日志记录提到的相同问题也适用于客户端。
对于生产,通过扩展org.apache.axis.handlers.BasicHandler 编写自己的日志处理程序,并在处理程序中配置类文件。请查看#raspayu 的上述答案以配置您自己的答案。要记录错误,请覆盖 Handler 中的 public void onFault(MessageContext msgContext) 方法。