Author: psmith Date: Wed Apr 18 20:25:33 2007 New Revision: 530249 URL: http://svn.apache.org/viewvc?view=rev&rev=530249 Log: Final tidy up of addition of other receivers from log4j 1.3.
Reviewed by: Curt and Scott Added: logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/db/ - copied from r529843, logging/log4j/trunk/src/java/org/apache/log4j/db/ logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/net/JMSReceiver.java - copied unchanged from r529796, logging/log4j/trunk/src/java/org/apache/log4j/net/JMSReceiver.java logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/net/JMSReceiverBeanInfo.java - copied unchanged from r529796, logging/log4j/trunk/src/java/org/apache/log4j/net/JMSReceiverBeanInfo.java logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/net/MulticastReceiver.java - copied unchanged from r529796, logging/log4j/trunk/src/java/org/apache/log4j/net/MulticastReceiver.java logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/net/MulticastReceiverBeanInfo.java - copied unchanged from r529796, logging/log4j/trunk/src/java/org/apache/log4j/net/MulticastReceiverBeanInfo.java logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/net/UDPReceiver.java - copied unchanged from r529796, logging/log4j/trunk/src/java/org/apache/log4j/net/UDPReceiver.java logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/net/XMLSocketNode.java - copied unchanged from r529796, logging/log4j/trunk/src/java/org/apache/log4j/net/XMLSocketNode.java logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/net/XMLSocketReceiver.java - copied unchanged from r529796, logging/log4j/trunk/src/java/org/apache/log4j/net/XMLSocketReceiver.java Modified: logging/sandbox/log4j/receivers/pom.xml logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/db/CustomSQLDBReceiver.java logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/db/DBAppender.java logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/db/DBReceiverJob.java Modified: logging/sandbox/log4j/receivers/pom.xml URL: http://svn.apache.org/viewvc/logging/sandbox/log4j/receivers/pom.xml?view=diff&rev=530249&r1=530248&r2=530249 ============================================================================== --- logging/sandbox/log4j/receivers/pom.xml (original) +++ logging/sandbox/log4j/receivers/pom.xml Wed Apr 18 20:25:33 2007 @@ -116,7 +116,12 @@ <groupId>oro</groupId> <artifactId>oro</artifactId> <version>2.0.8</version> - </dependency> + </dependency> + <dependency> + <groupId>javax.jms</groupId> + <artifactId>jms</artifactId> + <version>1.1</version> + </dependency> </dependencies> <reporting> <plugins> Modified: logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/db/CustomSQLDBReceiver.java URL: http://svn.apache.org/viewvc/logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/db/CustomSQLDBReceiver.java?view=diff&rev=530249&r1=529843&r2=530249 ============================================================================== --- logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/db/CustomSQLDBReceiver.java (original) +++ logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/db/CustomSQLDBReceiver.java Wed Apr 18 20:25:33 2007 @@ -398,19 +398,24 @@ } Level levelImpl = Level.toLevel(level); - LoggingEvent event = new LoggingEvent( - eventLogger.getName(), eventLogger, levelImpl, - message, null); - event.setLocationInformation(new LocationInfo(fileName, - className, methodName, lineNumber)); - properties.putAll(mdc); - event.setTimeStamp(timeStamp); - event.setThrowableInformation(new ThrowableInformation( - exception)); - event.setProperties(properties); - event.setThreadName(threadName); - event.setNDC(ndc); + + LocationInfo locationInfo = new LocationInfo(fileName, + className, methodName, lineNumber); + + ThrowableInformation throwableInfo = new ThrowableInformation( + exception); + + properties.putAll(mdc); + + LoggingEvent event = new LoggingEvent(eventLogger.getName(), + eventLogger, timeStamp, levelImpl, message, + threadName, + throwableInfo, + ndc, + locationInfo, + properties); + doPost(event); } //log when rows are retrieved Modified: logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/db/DBAppender.java URL: http://svn.apache.org/viewvc/logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/db/DBAppender.java?view=diff&rev=530249&r1=529843&r2=530249 ============================================================================== --- logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/db/DBAppender.java (original) +++ logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/db/DBAppender.java Wed Apr 18 20:25:33 2007 @@ -20,6 +20,7 @@ import org.apache.log4j.AppenderSkeleton; import org.apache.log4j.db.dialect.SQLDialect; import org.apache.log4j.db.dialect.Util; +import org.apache.log4j.helpers.LogLog; import org.apache.log4j.spi.LoggingEvent; import org.apache.log4j.spi.LocationInfo; @@ -209,7 +210,10 @@ PreparedStatement insertStatement = connection.prepareStatement(insertSQL); - insertStatement.setLong(1, event.getSequenceNumber()); + +/* insertStatement.setLong(1, event.getSequenceNumber());*/ + insertStatement.setLong(1, 0); + insertStatement.setLong(2, event.getTimeStamp()); insertStatement.setString(3, event.getRenderedMessage()); insertStatement.setString(4, event.getLoggerName()); @@ -371,6 +375,32 @@ */ public boolean requiresLayout() { return false; + } + + /** Here Be Dragons. + * This code is necessary because this class originally came from the log4j 1.3 area, before being backported to 1.3 + * In 1.3, Appenders had their own logger, but 1.2 does not have this, so instead we embed a 'compatible' mechanism here + * The goal was to keep the code as similar as possible, to avoid as many conflicts as possble. + * Code suggested by Curt Arnold (and not Curty Arnold... ;) ) + */ + + private static final class LogLogger { + public void debug(final String msg) { + LogLog.debug(msg); + } + public void warn(final String msg, final Throwable ex) { + LogLog.warn(msg, ex); + } + public void warn(final String msg) { + LogLog.warn(msg); + } + public void error(final String msg, final Throwable ex) { + LogLog.error(msg, ex); + } + } + + private static final LogLogger getLogger() { + return new LogLogger(); } } Modified: logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/db/DBReceiverJob.java URL: http://svn.apache.org/viewvc/logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/db/DBReceiverJob.java?view=diff&rev=530249&r1=529843&r2=530249 ============================================================================== --- logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/db/DBReceiverJob.java (original) +++ logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/db/DBReceiverJob.java Wed Apr 18 20:25:33 2007 @@ -32,6 +32,7 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; +import java.util.Hashtable; import java.util.Vector; /** @@ -75,38 +76,62 @@ //rs.beforeFirst(); while (rs.next()) { - LoggingEvent event = new LoggingEvent(); + Logger logger = null; + long timeStamp = 0L; + String level = null; + String threadName = null; + Object message = null; + String ndc = null; + String className = null; + String methodName = null; + String fileName = null; + String lineNumber = null; + Hashtable properties = new Hashtable(); + + + //event.setSequenceNumber(rs.getLong(1)); + timeStamp = rs.getLong(2); + message = rs.getString(3); + logger = Logger.getLogger(rs.getString(4)); + level = rs.getString(5); + Level levelImpl = Level.toLevel(level.trim()); - event.setSequenceNumber(rs.getLong(1)); - event.setTimeStamp(rs.getLong(2)); - event.setRenderedMessage(rs.getString(3)); - event.setLoggerName(rs.getString(4)); - String levelStr = rs.getString(5); - - // TODO CG The conversion of levelStr should be more general - Level level = Level.toLevel(levelStr); - event.setLevel(level); - event.setNDC(rs.getString(6)); - event.setThreadName(rs.getString(7)); + ndc = rs.getString(6); + threadName = rs.getString(7); short mask = rs.getShort(8); - String fileName = rs.getString(9); - String className = rs.getString(10); - String methodName = rs.getString(11); - String lineNumber = rs.getString(12).trim(); + fileName = rs.getString(9); + className = rs.getString(10); + methodName = rs.getString(11); + lineNumber = rs.getString(12).trim(); + LocationInfo locationInfo = null; if (fileName.equals(LocationInfo.NA)) { - event.setLocationInformation(LocationInfo.NA_LOCATION_INFO); + locationInfo = LocationInfo.NA_LOCATION_INFO; } else { - event.setLocationInformation(new LocationInfo(fileName, className, - methodName, lineNumber)); + locationInfo = new LocationInfo(fileName, className, + methodName, lineNumber); } long id = rs.getLong(13); //LogLog.info("Received event with id=" + id); lastId = id; + ThrowableInformation throwableInfo = null; + if ((mask & DBHelper.EXCEPTION_EXISTS) != 0) { + throwableInfo = getException(connection, id); + } + + LoggingEvent event = new LoggingEvent(logger.getName(), + logger, timeStamp, levelImpl, message, + threadName, + throwableInfo, + ndc, + locationInfo, + properties); + + // Scott asked for this info to be event.setProperty(Constants.LOG4J_ID_KEY, Long.toString(id)); @@ -114,9 +139,8 @@ getProperties(connection, id, event); } - if ((mask & DBHelper.EXCEPTION_EXISTS) != 0) { - getException(connection, id, event); - } + + if (!parentDBReceiver.isPaused()) { parentDBReceiver.doPost(event); @@ -177,7 +201,7 @@ * @param event * @throws SQLException */ - void getException(Connection connection, long id, LoggingEvent event) + ThrowableInformation getException(Connection connection, long id) throws SQLException { PreparedStatement statement = null; @@ -200,7 +224,7 @@ strRep[i] = (String) v.get(i); } // we've filled strRep, we now attach it to the event - event.setThrowableInformation(new ThrowableInformation(strRep)); + return new ThrowableInformation(strRep); } finally { if (statement != null) { statement.close(); --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]