You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by cs...@apache.org on 2011/10/28 20:48:45 UTC
svn commit: r1190497 - in /cxf/trunk/rt/core/src:
main/java/org/apache/cxf/interceptor/ test/java/org/apache/cxf/interceptor/
Author: cschneider
Date: Fri Oct 28 18:48:44 2011
New Revision: 1190497
URL: http://svn.apache.org/viewvc?rev=1190497&view=rev
Log:
CXF-3888 Different log categories for each service
Modified:
cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractLoggingInterceptor.java
cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/LoggingInInterceptor.java
cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/LoggingOutInterceptor.java
cxf/trunk/rt/core/src/test/java/org/apache/cxf/interceptor/LoggingOutInterceptorTest.java
Modified: cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractLoggingInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractLoggingInterceptor.java?rev=1190497&r1=1190496&r2=1190497&view=diff
==============================================================================
--- cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractLoggingInterceptor.java (original)
+++ cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractLoggingInterceptor.java Fri Oct 28 18:48:44 2011
@@ -23,6 +23,8 @@ import java.io.FileWriter;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.net.URI;
+import java.util.HashMap;
+import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -31,11 +33,14 @@ import javax.xml.transform.Transformer;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
+import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.common.util.StringUtils;
import org.apache.cxf.helpers.XMLUtils;
import org.apache.cxf.io.CachedOutputStream;
import org.apache.cxf.message.Message;
import org.apache.cxf.phase.AbstractPhaseInterceptor;
+import org.apache.cxf.service.model.EndpointInfo;
+import org.apache.cxf.service.model.InterfaceInfo;
/**
* A simple logging handler which outputs the bytes of the message to the
@@ -47,6 +52,8 @@ public abstract class AbstractLoggingInt
protected PrintWriter writer;
protected boolean prettyLogging;
+ private Map<String, Logger> messageLoggers = new HashMap<String, Logger>();
+
public AbstractLoggingInterceptor(String phase) {
super(phase);
}
@@ -55,6 +62,23 @@ public abstract class AbstractLoggingInt
}
protected abstract Logger getLogger();
+
+ Logger getMessageLogger(Message message) {
+ EndpointInfo endpoint = message.getExchange().getEndpoint().getEndpointInfo();
+ String serviceName = endpoint.getService().getName().getLocalPart();
+ InterfaceInfo iface = endpoint.getService().getInterface();
+ String portName = endpoint.getName().getLocalPart();
+ String portTypeName = iface.getName().getLocalPart();
+ String logName = "org.apache.cxf.services." + serviceName + "."
+ + portName + "." + portTypeName;
+ Logger logger = endpoint.getProperty("MessageLogger", Logger.class);
+ if (logger == null) {
+ logger = LogUtils.getL7dLogger(this.getClass(), null, logName);
+ endpoint.setProperty("MessageLogger", logger);
+ messageLoggers.put(logName, logger);
+ }
+ return logger;
+ }
public void setOutputLocation(String s) {
if (s == null || "<logger>".equals(s)) {
@@ -141,14 +165,14 @@ public abstract class AbstractLoggingInt
return originalLogString;
}
- protected void log(String message) {
+ protected void log(Logger logger, String message) {
message = transform(message);
if (writer != null) {
writer.println(message);
// Flushing the writer to make sure the message is written
writer.flush();
- } else if (getLogger().isLoggable(Level.INFO)) {
- getLogger().info(message);
+ } else if (logger.isLoggable(Level.INFO)) {
+ logger.info(message);
}
}
Modified: cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/LoggingInInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/LoggingInInterceptor.java?rev=1190497&r1=1190496&r2=1190497&view=diff
==============================================================================
--- cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/LoggingInInterceptor.java (original)
+++ cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/LoggingInInterceptor.java Fri Oct 28 18:48:44 2011
@@ -69,12 +69,13 @@ public class LoggingInInterceptor extend
}
public void handleMessage(Message message) throws Fault {
- if (writer != null || getLogger().isLoggable(Level.INFO)) {
- logging(message);
+ Logger logger = getMessageLogger(message);
+ if (writer != null || logger.isLoggable(Level.INFO)) {
+ logging(logger, message);
}
}
- protected void logging(Message message) throws Fault {
+ protected void logging(Logger logger, Message message) throws Fault {
if (message.containsKey(LoggingMessage.ID_KEY)) {
return;
}
@@ -144,7 +145,7 @@ public class LoggingInInterceptor extend
throw new Fault(e);
}
}
- log(buffer.toString());
+ log(logger, buffer.toString());
}
@Override
Modified: cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/LoggingOutInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/LoggingOutInterceptor.java?rev=1190497&r1=1190496&r2=1190497&view=diff
==============================================================================
--- cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/LoggingOutInterceptor.java (original)
+++ cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/LoggingOutInterceptor.java Fri Oct 28 18:48:44 2011
@@ -63,14 +63,15 @@ public class LoggingOutInterceptor exten
if (os == null) {
return;
}
- if (getLogger().isLoggable(Level.INFO) || writer != null) {
+ Logger logger = getMessageLogger(message);
+ if (logger.isLoggable(Level.INFO) || writer != null) {
// Write the output while caching it for the log message
boolean hasLogged = message.containsKey(LOG_SETUP);
if (!hasLogged) {
message.put(LOG_SETUP, Boolean.TRUE);
final CacheAndWriteOutputStream newOut = new CacheAndWriteOutputStream(os);
message.setContent(OutputStream.class, newOut);
- newOut.registerCallback(new LoggingCallback(message, os));
+ newOut.registerCallback(new LoggingCallback(logger, message, os));
}
}
}
@@ -79,8 +80,11 @@ public class LoggingOutInterceptor exten
private final Message message;
private final OutputStream origStream;
+ @SuppressWarnings("PMD")
+ private final Logger logger;
- public LoggingCallback(final Message msg, final OutputStream os) {
+ public LoggingCallback(final Logger logger, final Message msg, final OutputStream os) {
+ this.logger = logger;
this.message = msg;
this.origStream = os;
}
@@ -144,7 +148,7 @@ public class LoggingOutInterceptor exten
//ignore
}
- log(buffer.toString());
+ log(logger, buffer.toString());
try {
//empty out the cache
cos.lockOutputStream();
Modified: cxf/trunk/rt/core/src/test/java/org/apache/cxf/interceptor/LoggingOutInterceptorTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/core/src/test/java/org/apache/cxf/interceptor/LoggingOutInterceptorTest.java?rev=1190497&r1=1190496&r2=1190497&view=diff
==============================================================================
--- cxf/trunk/rt/core/src/test/java/org/apache/cxf/interceptor/LoggingOutInterceptorTest.java (original)
+++ cxf/trunk/rt/core/src/test/java/org/apache/cxf/interceptor/LoggingOutInterceptorTest.java Fri Oct 28 18:48:44 2011
@@ -21,7 +21,9 @@ package org.apache.cxf.interceptor;
import java.io.ByteArrayOutputStream;
import java.io.PrintWriter;
+import java.util.logging.Logger;
+import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.io.CachedOutputStream;
import org.apache.cxf.message.ExchangeImpl;
import org.apache.cxf.message.Message;
@@ -46,7 +48,8 @@ public class LoggingOutInterceptorTest e
Message message = new MessageImpl();
message.setExchange(new ExchangeImpl());
message.put(Message.CONTENT_TYPE, "application/xml");
- LoggingOutInterceptor.LoggingCallback l = p.new LoggingCallback(message, cos);
+ Logger logger = LogUtils.getL7dLogger(this.getClass());
+ LoggingOutInterceptor.LoggingCallback l = p.new LoggingCallback(logger, message, cos);
l.onClose(cos);
String str = baos.toString();
//format has changed