[Rabbit-proxy-development] Logging
Brought to you by:
ernimril
|
From: Rick L. <rl...@le...> - 2006-02-08 20:01:00
|
Hi Robo,
Rabbit works really well for me.
Just a minor suggestion for logging: use
java.util.logging instead of rabbit.util.Logger.
More flexible, and can log to XML. ( Maybe it would be useful to log to a
CSV file and view it as a spreadsheet in OO).
I have not mapped the Rabbit log types to the Sun levels, just catted them
for now.
Next: it would be nice if log rotation was automatic.
cheers -- Rick
In Proxy,
public static Logger logger;
private void setupErrorLog() {
String sLogDir = config.getProperty(getClass().getName(),
"errorlogdir", "logs");
try{
FileHandler fh = new FileHandler(sLogDir +
java.io.File.separatorChar + "error_log");
logger = Logger.getLogger("LoggingExample1");
logger.setLevel(Level.INFO);
// fh.setFormatter(new XMLFormatter());
// fh.setFormatter(new SimpleFormatter());
fh.setFormatter(new SimplerTextFormatter());
logger.addHandler(fh);
} catch (IOException e){
System.out.println("cannot open logfile ");
}
public void logError(int type, String error) {
if (type < loglevel)
return;
String stype = getErrorLevelString(type);
//zzz Date d = new Date();
// d.setTime(d.getTime() - offset);
StringBuilder sb = new StringBuilder("[");
//zzz synchronized (sdfMonitor) {
// sb.append(sdf.format(d)); }
// sb.append("][");
sb.append(stype);
sb.append("][");
sb.append(error);
sb.append("]");
logger.log(Level.INFO, sb.toString());
/* zzzzz synchronized (errorMonitor) {
errorlog.println(sb.toString());}*/
}
new class:
/**
* Like java.util.logging.SimpleFormatter but simpler.
* @author Rick Leir LeirTech.com
*/
package com.leirtech.logging;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.Formatter;
import java.util.logging.LogRecord;
/**
* @author rleir
*
*/
public class SimplerTextFormatter extends Formatter {
/** The format we write dates on. */
private SimpleDateFormat sdf = new SimpleDateFormat(
"dd/MMM/yyyy:HH:mm:ss 'GMT' ");
public String format(LogRecord lr) {
Date d = new Date(lr.getMillis());
String s = sdf.format(d) + lr.getLevel() + " " +
lr.getMessage();
Throwable t = lr.getThrown();
if (t != null)
s += t.toString();
s += "\n";
return s;
}
}
--
Rick Leir 613-828-8289 -> rick
http://www.leirtech.com/rick/ AT leirtech
DOT com
|