2014-07-24 5 views
1

들어오고 나가는 모든 CXF 요청을 특정 로그 파일에 기록하고 싶습니다. 하지만 콘솔 출력은 다음과 같은 구성으로 얻을 수 있습니다. 여기서 뭐가 잘못 됐니?log4j2로 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/메인/자원/META-INF/CXF/org.apache.cxf.Logger : 해결 방법으로

org.apache.cxf.common.logging.Log4jLogger 
+0

Double-Check : 실제로 로깅 인터셉터를 엔드 포인트에 할당합니까? – Scorpio

+0

물론 가능합니다. 나는 나의 구성이 log4j2 v2.0-beta9와 함께 작동하는데 사용되었지만, 현재 릴리스 v2.0에서는 더 이상 작동하지 않는다는 것을 발견했다. 또한 cxf 로깅은 일반적으로 systemout에 인쇄 할 때 좋습니다. 그러나 로그 파일은 비어 있습니다. – membersound

답변

4

, 지금이야 org.apache.cxf.common.logging.Slf4jLogger 및 브리지 종속성을 사용합니다. 여기

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

2 년 후에도 여전히 당신이 ... SLF4J 의존성없이이 작업을 해 보셨습니까? – sim

+0

아직 slf4j 의존성을 사용하고 있습니다. 죄송합니다 :) – membersound

+0

와우, 멋졌습니다 - 답장을 보내 주셔서 감사합니다! 확인. – sim

1
<?xml version="1.0" encoding="UTF-8"?> 
<Configuration status="INFO"> 

<Properties> 
    <property name="multiplan">logs/multiplan.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="multiplan-all" fileName="${multiplan}" 
    filePattern="${multiplan}.%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="multiplan-all"/> 
    </Root> 
    <Logger name="org.apache.cxf" additivity="false" level="warn"> 
      <appender-ref ref="multiplan-all"/> 
    </Logger> 
    <Logger name="org.springframework" additivity="false" level="warn"> 
      <appender-ref ref="multiplan-all"/> 
    </Logger> 
    <Logger name="org.eclipse.jetty" additivity="false" level="warn"> 
      <appender-ref ref="multiplan-all"/> 
    </Logger> 
    <Logger name="com.multiplan.bam.db.edp.EventAuditDAO" level="error" additivity="false"> 
     <appender-ref ref="mongoexceptions-all" /> 
    </Logger> 
    <Logger name="com.multiplan.bam.db.edp.ExceptionsLogDAO" level="error" additivity="false"> 
     <appender-ref ref="mongoexceptions-all" /> 
    </Logger> 
    <Logger name="com.multiplan.bam.db.edp.ClaimDAO" level="debug"> 
     <appender-ref ref="webservice-all" /> 
    </Logger> 
    <Logger name="com.multiplan.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> 

의 동작 예이다.

관련 문제