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;
}
}
}