使用log4j的WebSphere 7 JAX-WS Log Soap消息

时间:2014-02-24 13:58:52

标签: java soap websphere jax-ws

我想知道如何利用Log4J在WebSphere 7中记录SOAP消息,我使用的是使用WebSphere 7附带的AXIS2引擎的JAX-WS。我能够在WebSphere中使用“跟踪”来记录SOAP消息但我想知道是否有办法使用Log4J来记录SOAP消息并使用File Appender。

如果有人能告诉我具体如何配置它,我会很感激,我尝试了一些但是没有用。

我确实将log4j.properties文件放在WEB-INF / classes中,如下所示,但它没有记录SOAP消息。

log4j.rootCategory=DEBUG, LOGFILE
log4j.logger.org.apache.axis2=DEBUG, LOGFILE
log4j.category.org.apache.axis2=DEBUG, LOGFILE
log4j.logger.org.apache.axis2.transport.http=DEBUG, LOGFILE
log4j.category.org.apache.axis2.transport.http=DEBUG, LOGFILE
log4j.logger.com.ibm.ws.websvcs=DEBUG, LOGFILE
log4j.category.com.ibm.ws.websvcs=DEBUG, LOGFILE

log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=C:/K1/logs/axis.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] %-5p %c %x - %m%n

2 个答案:

答案 0 :(得分:1)

WebSphere Web服务运行时在内部使用WebSphere跟踪日志记录。您可能无法通过简单地向您的Web服务使用应用程序添加和配置log4j来将内置web service traces定向到log4j。

但是,您可以使用JAX-WS标准处理程序非常轻松地将请求和响应或错误记录到log4j Logger(但您必须编写一些代码)。

这是GlassFish tutorial on JAX-WS handlers。请注意,演示处理程序将SOAP消息记录到System.out;你会想要使用log4j。

This StackOverflow post包含SOAP消息日志处理程序的完整java类示例如何以编程方式注册处理程序,以便在消息处理期间执行它。它也使用System.out;你需要用log.debug(...)代替out.println(...)来使用log4j。然后,您可以像上面尝试的那样使用该记录器的文件追加器配置log4j。

作为侧边栏,如果您通过@WebServiceRef获取服务引用,则可以通过@HandlerChain引用的XML文件以声明方式定义处理程序。端到端的IBM教程是here

答案 1 :(得分:0)

配置log4j与任何其他项目相同。确保log4j.xml或属性文件位于类路径和log4j相关的jar中。

你可以发布任何错误或任何配置文件。

如果要记录请求和响应,请创建一个SOAP处理程序来为您执行此操作。

相关问题