Here are the sources to the previous email
 
TorqueAppender.java
===============
public class TorqueAppender extends AppenderSkeleton 
{
            protected TorqueLogger logger;
            protected int maxmsgsize;
            protected boolean maxmsgsizeInitialized;
            
            public int getMaxmsgsize() { return maxmsgsize; }
            public void setMaxmsgsize(int maxmsgsize) 
            { 
                        this.maxmsgsize = maxmsgsize; 
                        maxmsgsizeInitialized = true;
                        if (logger != null)
                                    logger.setMaxmsgsize(maxmsgsize);
            }
            
            public TorqueAppender() { super();  maxmsgsizeInitialized =
false; }
 
            public void setLogger(String l) throws Exception 
            {
                        if (l == null)
                         throw new Exception("logger required");
                        this.logger = (TorqueLogger)
(Class.forName(l).newInstance());
                        if (maxmsgsizeInitialized)
                        {
 
this.logger.setMaxmsgsize(maxmsgsize);
                        }
            }
 
            /**
             *  Internal method. Appends the message to the database
table.
             *
             [EMAIL PROTECTED]  event  Description of Parameter
             */
            public void append(LoggingEvent event) 
            {
                        if (logger == null)
                        {
 
errorHandler.error("TorqueAppender.append(), ", 
                                                new Exception("logger
has not been initialized"),ErrorCode.GENERIC_FAILURE);
                                    return;   
                        }
                        try 
                        {
                                    logger.append(event);
                        }
                        catch (Exception e)
                        {
 
errorHandler.error("TorqueAppender.append(), ", e,
ErrorCode.GENERIC_FAILURE);
                                    e.printStackTrace();
                        }
            }
            
            public boolean requiresLayout() { return true; }
            
            public void close() {}
}
 
 
 
TorqueLogger.java
=============
public abstract class TorqueLogger 
{
            protected int maxmsgsize;
 
            public TorqueLogger() { this (500); }
 
            public TorqueLogger(int maxmsgsize) {
setMaxmsgsize(maxmsgsize); }
            
            public void setMaxmsgsize(int maxmsgsize) 
            { 
                        this.maxmsgsize = maxmsgsize; 
            } 
            
            public abstract void append(LoggingEvent le) throws
Exception;
}
 
 
MideLogger.java
============
public class MideLogger extends TorqueLogger
{
            public MideLogger() { super(); }
            
            public void append(LoggingEvent event) throws Exception
            {
                        // now create the log entry.
                        LogEntry logEntry = null; try { logEntry =
(LogEntry) event.getMessage(); } catch (Exception e) {} 
                        if (logEntry == null)
                        {
                                    logEntry = new LogEntry();
                                    try {
logEntry.setMessage(event.getMessage().toString());} catch (Exception e)
{}
                        }
                        
                        Throwable throwable = null;
                        if (event.getThrowableInformation() != null) 
                        {
                                    throwable =
event.getThrowableInformation().getThrowable();
                                    String currMsg =
logEntry.getMessage(); if (currMsg == null) currMsg = "";
                                    java.io.StringWriter sw = new
java.io.StringWriter();
                                    throwable.printStackTrace(new
java.io.PrintWriter(sw));
                                    currMsg = sw.toString();
                                    if (currMsg.trim().length() >
maxmsgsize)
                                                currMsg =
currMsg.trim().substring(0,maxmsgsize);
                                    logEntry.setMessage(currMsg); 
                        }
                        logEntry.setWhenOccurred(new
java.util.Date(event.timeStamp));
 
logEntry.setLogLevel(event.getLevel().toString());
                        
                        // try { throw new Throwable(); } catch
(Throwable th) { th.printStackTrace(); }
                        LocationInfo locinfo =
event.getLocationInformation();
                        StringBuffer throwableStringBuffer = new
StringBuffer();
                        
                        if (locinfo != null) 
                        {
                                    logEntry.setOrigin(
                                                            new
StringBuffer(locinfo.getClassName())
                                                            .append("
").append(locinfo.getMethodName())
                                                            .append("
").append(locinfo.getLineNumber())
 
.toString());
                        }
 
                        java.sql.Connection conn = null;
                        try
                        {
                                    conn =
Transaction.begin(Torque.getDefaultDB());
                                    logEntry.setID(new
Integer(TorqueIDGenerator.getNextID(conn, LogEntryPeer.TABLE_NAME)));
                                    logEntry.save(conn);
                                    Transaction.commit(conn);
                        }
                        catch (Exception e)
                        {
                                    try { Transaction.rollback(conn);
}catch (Exception e2) {}
                                    throw e;            
                        }
            }
}
 
 
 
 

Reply via email to