Hi everyone, I wrote an Appender for log4j which shows the log statements in different colours depending on the priority. Tested on Linux (console and xterm). Code is below. Greetings, Bruno Dumon import org.apache.log4j.AppenderSkeleton; import org.apache.log4j.spi.LoggingEvent; /** Appender which prints to System.out and shows different priorities in different colors. @author <a href="mailto:[EMAIL PROTECTED]">Bruno Dumon</a> */ public class LinuxConsoleAppender extends AppenderSkeleton { private static final char ESCAPE = 033; private static final String RED = "[31m"; private static final String GREEN = "[32m"; private static final String YELLOW = "[33m"; private static final String BLUE = "[34m"; private static final String PURPLE = "[35m"; private static final String CYAN = "[36m"; private static final String SILVER = "[37m"; private static final String WHITE = "[38m"; private static final String REVERSE = "[7m"; // copied from Priority class because they have default access final static int FATAL_INT = 50000; final static int ERROR_INT = 40000; final static int WARN_INT = 30000; final static int INFO_INT = 20000; final static int DEBUG_INT = 10000; protected void append(LoggingEvent event) { switch (event.priority.toInt()) { case ERROR_INT: System.out.print(ESCAPE); System.out.print(RED); break; case WARN_INT: System.out.print(ESCAPE); System.out.print(GREEN); break; case INFO_INT: System.out.print(ESCAPE); System.out.print(BLUE); break; case FATAL_INT: System.out.print(ESCAPE); System.out.print(RED); System.out.print(ESCAPE); System.out.print(REVERSE); break; // DEBUG statements are shown in black } // print but remove newline String toPrint = this.layout.format(event); System.out.print(toPrint.substring(0, toPrint.length()-1)); // reset colors System.out.print(ESCAPE); System.out.print("[m"); // newline System.out.println(); if(layout.ignoresThrowable()) { if(event.throwable != null) { event.throwable.printStackTrace(System.out); } else if (event.throwableInformation != null) { System.out.println(event.throwableInformation); } } } public boolean requiresLayout() { return true; } public void close() { this.closed = true; } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]