我正在尝试使用log4j将我的其余web服务的LoggingInInterceptor和LoggingOutInterceptor消息从控制台重定向到文件,如下所示,
cxf.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxrs="http://cxf.apache.org/jaxrs"
xmlns:cxf="http://cxf.apache.org/core"
xsi:schemaLocation="
http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://cxf.apache.org/jaxrs
http://cxf.apache.org/schemas/jaxrs.xsd">
<jaxrs:server id="base" address="/Restful">
<jaxrs:serviceBeans>
<ref bean="Service" />
</jaxrs:serviceBeans>
<jaxrs:features>
<cxf:logging />
</jaxrs:features>
</jaxrs:server>
<bean id="Service" class="com.xxx.yyy.services.ServiceImpl" />
</beans>
org.apache.cxf.Logger文件
org.apache.cxf.common.logging.Log4jLogger
log4j.properties
# Root logger option
log4j.rootLogger=INFO, file, stdout
## more informations
# http://cxf.apache.org/docs/debugging-and-logging.html
# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=D:\\ServiceLog.txt
log4j.appender.file.MaxFileSize=1MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
其他详细信息,
CXF 3.1.4和Java 7
这里我在控制台中收到这两条消息,但它没有在文件中写入。
如果有人能在这里帮助我,我们将不胜感激。
谢谢,
答案 0 :(得分:5)
确保在org.apache.cxf.Logger
文件中输入一行文字
org.apache.cxf.common.logging.Log4jLogger
此外,请确保它是WAR类路径的一部分,因此一旦您的WAR正确打包,它应该在WEB-INF/classes/META-INF/cxf/org.apache.cxf.Logger
下结束。
最后,查看您的log4j配置文件,您错过了将CXF记录器级别设置为INFO
,如下所示:
log4j.appender.org.apache.cxf.Threshold=INFO
尝试在log4j配置的末尾添加此行。
答案 1 :(得分:2)
正如您可以阅读Apache CXF - Debbuging and Logging CXF使用Java SE Logging,但您可以更改日志记录实现:
如上所述,默认情况下,CXF使用
java.util.logging
包(“Java SE Logging”)。但是可以将CXF切换为使用Log4J。这是通过使用配置文件实现的。引导CXF日志记录有两个选项,每个选项列在下面:
将以下系统属性添加到初始化CXF的类路径中:
-Dorg.apache.cxf.Logger=org.apache.cxf.common.logging.Log4jLogger
将文件
META-INF/cxf/org.apache.cxf.Logger
添加到类路径中,并确保它包含以下内容:
org.apache.cxf.common.logging.Log4jLogger
您必须将META-INF/cxf/org.apache.cxf.Logger
文件的内容从org.apache.cxf.Logger
更改为org.apache.cxf.common.logging.Log4jLogger
答案 2 :(得分:0)