【问题标题】:How to log CXF webservice requests with log4j2?如何使用 log4j2 记录 CXF 网络服务请求?
【发布时间】:2014-07-24 10:46:08
【问题描述】:

我想将所有传入和传出的CXF 请求记录到特定的日志文件中。但是我通过以下配置得到的只是控制台输出。这里有什么问题?

log4j2.xml:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
    <Appenders>
        <Console name="CONSOLE" target="SYSTEM_OUT">
            <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
        </Console>

        <RollingFile name="CXF" fileName="cxf.log">
            <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
        </RollingFile>
    </Appenders>
    <Loggers>
        <logger name="org.apache.cxf" additivity="false" level="info">
                <AppenderRef ref="CXF"/>
        </logger>
        <logger name="org.apache.cxf.interceptor.LoggingInInterceptor" additivity="false" level="info">
            <AppenderRef ref="CXF" />
        </logger>
        <logger name="org.apache.cxf.interceptor.LoggingOutInterceptor" additivity="false" level="info">
            <AppenderRef ref="CXF" />
        </logger>

        <Root level="all">
            <AppenderRef ref="CONSOLE" />
        </Root>
    </Loggers>
</Configuration>

src/main/resources/META-INF/cxf/org.apache.cxf.Logger:

org.apache.cxf.common.logging.Log4jLogger

【问题讨论】:

  • 双重检查:您是否真的将日志拦截器分配给您的端点?
  • 是的,我当然愿意。我发现我的配置曾经与 log4j2 v2.0-beta9 一起使用,但在当前版本 v2.0 中不再适用。此外,通常 cxf 日志记录很好,因为它可以打印到 systemout。但是日志文件是空的。

标签: java log4j cxf log4j2


【解决方案1】:

作为一种解决方法,我现在使用org.apache.cxf.common.logging.Slf4jLogger 和桥依赖项。

    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j-impl</artifactId>
        <version>2.0</version>
    </dependency>

【讨论】:

  • 我希望你在 2 年后还活着......你有没有在没有 SLF4J 依赖的情况下得到这个工作?
  • 我还在,还在使用 slf4j 依赖项。对不起:)
  • XML 的 sn-p 去哪儿了?
【解决方案2】:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">

<Properties>
    <property name="main">logs/main.log</property>      
    <property name="webservice">logs/webservice.log</property>
    <property name="sql">logs/sql.log</property>        
    <property name="mongoexceptions">logs/mongoexceptions.log</property>

</Properties>

<Appenders>
<RollingFile name="mongoexceptions-all" fileName="${mongoexceptions}"
    filePattern="${mongoexceptions}.%i" bufferedIO="false" bufferSize="8192">
        <PatternLayout>
            <pattern>%d{dd MMM HH:mm:ss:SSS} %p [%t] - %m ---- %c%n</pattern>
        </PatternLayout>
        <Policies>
            <SizeBasedTriggeringPolicy size="10000KB" />
        </Policies>
        <DefaultRolloverStrategy max="10"/>
    </RollingFile>

    <RollingFile name="main-all" fileName="${main}"
    filePattern="${main}.%i" bufferedIO="false" bufferSize="8192">
        <PatternLayout>
            <pattern>%d{dd MMM HH:mm:ss:SSS} %p [%t] - %m ---- %c%n</pattern>
        </PatternLayout>
        <Policies>
            <SizeBasedTriggeringPolicy size="10000KB" />
        </Policies>
        <DefaultRolloverStrategy max="20"/>
    </RollingFile>      
    
    <RollingFile name="webservice-all" fileName="${webservice}" filePattern="${webservice}.%i" bufferedIO="false" bufferSize="8192">
       <PatternLayout>
            <pattern>%d{dd MMM HH:mm:ss:SSS} %p [%t] - %m %n</pattern>
        </PatternLayout>
        <Policies>
            <SizeBasedTriggeringPolicy size="10000KB" />
        </Policies>
        <DefaultRolloverStrategy max="5"/>
 
    </RollingFile>

     <RollingFile name="sql-all" fileName="${sql}" filePattern="${sql}.%i" bufferedIO="true" bufferSize="8192">
        <PatternLayout pattern="%d [%t] %-5p %c - %m%n" />
        <Policies>
            <SizeBasedTriggeringPolicy size="1000KB" />
        </Policies>
        <DefaultRolloverStrategy max="1"/>
    </RollingFile>        
</Appenders>
<Loggers>
    
    <Root level="info" additivity="false">
        <AppenderRef ref="main-all"/>
    </Root>
    <Logger name="org.apache.cxf" additivity="false" level="warn">
            <appender-ref ref="main-all"/>
    </Logger>
    <Logger name="org.springframework" additivity="false" level="warn">
            <appender-ref ref="main-all"/>
    </Logger>
    <Logger name="org.eclipse.jetty" additivity="false" level="warn">
            <appender-ref ref="main-all"/>
    </Logger>
    <Logger name="com.main.bam.db.edp.EventAuditDAO"  level="error" additivity="false">
        <appender-ref ref="mongoexceptions-all" />
    </Logger>
    <Logger name="com.main.bam.db.edp.ExceptionsLogDAO"  level="error" additivity="false">
        <appender-ref ref="mongoexceptions-all" />
    </Logger>
    <Logger name="com.main.bam.db.edp.ClaimDAO"  level="debug">
        <appender-ref ref="webservice-all" />
    </Logger>
    <Logger name="com.main.bam.db.edp.CPDSummaryDAO"  level="debug">
        <appender-ref ref="webservice-all" />
    </Logger>
    <Logger name="DBConnectionFactory" level="info">
        <appender-ref ref="sql-all"/>
    </Logger>       
</Loggers>
</Configuration>

这是工作示例。

【讨论】:

    猜你喜欢
    • 2019-01-02
    • 2016-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-16
    相关资源
    最近更新 更多