Author: seb
Date: Mon Nov 6 17:42:54 2006
New Revision: 874
Modified:
logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/net/SimpleSocketServer.java
logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/net/SocketAppender.java
logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/net/SocketNode.java
Log:
Added an option to the SocketAppender to call the getCallerData method on
logging events before serializing them so that
the caller data is available on the remote machine.
Minor fix to SimpleSocketServer.java
Reformat only on SocketNode.java
Modified:
logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/net/SimpleSocketServer.java
==============================================================================
---
logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/net/SimpleSocketServer.java
(original)
+++
logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/net/SimpleSocketServer.java
Mon Nov 6 17:42:54 2006
@@ -18,6 +18,7 @@
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.classic.joran.JoranConfigurator;
import ch.qos.logback.core.joran.spi.JoranException;
+import ch.qos.logback.core.util.StatusPrinter;
/**
* A simple [EMAIL PROTECTED] SocketNode} based server.
@@ -92,8 +93,10 @@
if (configFile.endsWith(".xml")) {
LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
JoranConfigurator configurator = new JoranConfigurator();
+ lc.reset();
configurator.setContext(lc);
configurator.doConfigure(configFile);
+ StatusPrinter.print(lc);
}
}
}
Modified:
logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/net/SocketAppender.java
==============================================================================
---
logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/net/SocketAppender.java
(original)
+++
logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/net/SocketAppender.java
Mon Nov 6 17:42:54 2006
@@ -119,6 +119,7 @@
int port = DEFAULT_PORT;
ObjectOutputStream oos;
int reconnectionDelay = DEFAULT_RECONNECTION_DELAY;
+ boolean includeCallerData = false;
private Connector connector;
@@ -248,6 +249,9 @@
if (oos != null) {
try {
+ if (includeCallerData) {
+ ((LoggingEvent)event).getCallerData();
+ }
oos.writeObject(event);
// addInfo("=========Flushing.");
oos.flush();
@@ -317,6 +321,11 @@
public int getPort() {
return port;
}
+
+ public void setIncludeCallerData(boolean includeCallerData) {
+ this.includeCallerData = includeCallerData;
+ }
+
/**
* The <b>ReconnectionDelay</b> option takes a positive integer representing
Modified:
logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/net/SocketNode.java
==============================================================================
---
logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/net/SocketNode.java
(original)
+++
logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/net/SocketNode.java
Mon Nov 6 17:42:54 2006
@@ -39,61 +39,61 @@
*/
public class SocketNode implements Runnable {
- Socket socket;
- LoggerContext context;
- ObjectInputStream ois;
-
- static Logger logger = (Logger)
LoggerFactory.getLogger(SocketNode.class);
-
- public SocketNode(Socket socket, LoggerContext context) {
- this.socket = socket;
- this.context = context;
- try {
- ois = new ObjectInputStream(new
BufferedInputStream(socket
- .getInputStream()));
- } catch (Exception e) {
- logger.error("Could not open ObjectInputStream to " +
socket, e);
- }
- }
-
- // public
- // void finalize() {
- // System.err.println("-------------------------Finalize called");
- // System.err.flush();
- // }
-
- public void run() {
- LoggingEvent event;
- Logger remoteLogger;
-
- try {
- while (true) {
- // read an event from the wire
- event = (LoggingEvent) ois.readObject();
- // get a logger from the hierarchy. The name of
the logger is taken to
- // be the name contained in the event.
- remoteLogger =
context.getLogger(event.getLoggerRemoteView().getName());
- // apply the logger-level filter
- if
(remoteLogger.isEnabledFor(event.getLevel())) {
- // finally log the event as if was
generated locally
- remoteLogger.callAppenders(event);
- }
- }
- } catch (java.io.EOFException e) {
- logger.info("Caught java.io.EOFException closing
connection.");
- } catch (java.net.SocketException e) {
- logger.info("Caught java.net.SocketException closing
connection.");
- } catch (IOException e) {
- logger.info("Caught java.io.IOException: " + e);
- logger.info("Closing connection.");
- } catch (Exception e) {
- logger.error("Unexpected exception. Closing
connection.", e);
- }
-
- try {
- ois.close();
- } catch (Exception e) {
- logger.info("Could not close connection.", e);
- }
- }
+ Socket socket;
+ LoggerContext context;
+ ObjectInputStream ois;
+
+ static Logger logger = (Logger) LoggerFactory.getLogger(SocketNode.class);
+
+ public SocketNode(Socket socket, LoggerContext context) {
+ this.socket = socket;
+ this.context = context;
+ try {
+ ois = new ObjectInputStream(new BufferedInputStream(socket
+ .getInputStream()));
+ } catch (Exception e) {
+ logger.error("Could not open ObjectInputStream to " + socket, e);
+ }
+ }
+
+ // public
+ // void finalize() {
+ // System.err.println("-------------------------Finalize called");
+ // System.err.flush();
+ // }
+
+ public void run() {
+ LoggingEvent event;
+ Logger remoteLogger;
+
+ try {
+ while (true) {
+ // read an event from the wire
+ event = (LoggingEvent) ois.readObject();
+ // get a logger from the hierarchy. The name of the logger is taken to
+ // be the name contained in the event.
+ remoteLogger =
context.getLogger(event.getLoggerRemoteView().getName());
+ // apply the logger-level filter
+ if (remoteLogger.isEnabledFor(event.getLevel())) {
+ // finally log the event as if was generated locally
+ remoteLogger.callAppenders(event);
+ }
+ }
+ } catch (java.io.EOFException e) {
+ logger.info("Caught java.io.EOFException closing connection.");
+ } catch (java.net.SocketException e) {
+ logger.info("Caught java.net.SocketException closing connection.");
+ } catch (IOException e) {
+ logger.info("Caught java.io.IOException: " + e);
+ logger.info("Closing connection.");
+ } catch (Exception e) {
+ logger.error("Unexpected exception. Closing connection.", e);
+ }
+
+ try {
+ ois.close();
+ } catch (Exception e) {
+ logger.info("Could not close connection.", e);
+ }
+ }
}
_______________________________________________
logback-dev mailing list
[email protected]
http://qos.ch/mailman/listinfo/logback-dev