01: /**
02: * $Revision$
03: * $Date$
04: *
05: * Copyright (C) 2006-2007 Jive Software. All rights reserved.
06: *
07: * This software is published under the terms of the GNU Public License (GPL),
08: * a copy of which is included in this distribution.
09: */package org.jivesoftware.openfire.gateway.util;
10:
11: import org.apache.log4j.AppenderSkeleton;
12: import org.apache.log4j.Level;
13: import org.apache.log4j.Priority;
14: import org.apache.log4j.spi.LoggingEvent;
15: import org.jivesoftware.util.Log;
16:
17: /**
18: * @author Guus der Kinderen, guus@nimbuzz.com
19: */
20: public class Log4JToOpenfireAppender extends AppenderSkeleton {
21:
22: /*
23: * (non-Javadoc)
24: *
25: * @see org.apache.log4j.AppenderSkeleton#append(org.apache.log4j.spi.LoggingEvent)
26: */
27: @Override
28: protected void append(LoggingEvent event) {
29: final Level l = event.getLevel();
30: final String message = event.getMessage().toString();
31:
32: Throwable throwable = null;
33: if (event.getThrowableInformation() != null) {
34: throwable = event.getThrowableInformation().getThrowable();
35: }
36:
37: switch (l.toInt()) {
38: case Priority.OFF_INT:
39: // Logging turned off - do nothing.
40: break;
41:
42: case Priority.FATAL_INT:
43: case Priority.ERROR_INT:
44: Log.error(message, throwable);
45: break;
46:
47: case Priority.WARN_INT:
48: Log.warn(message, throwable);
49: break;
50:
51: case Priority.INFO_INT:
52: Log.info(message, throwable);
53: break;
54:
55: default:
56: // DEBUG and below (trace, all)
57: Log.debug(message, throwable);
58: break;
59: }
60: }
61:
62: /*
63: * (non-Javadoc)
64: *
65: * @see org.apache.log4j.AppenderSkeleton#close()
66: */
67: @Override
68: public void close() {
69: // There's nothing here to close.
70: }
71:
72: /*
73: * (non-Javadoc)
74: *
75: * @see org.apache.log4j.AppenderSkeleton#requiresLayout()
76: */
77: @Override
78: public boolean requiresLayout() {
79: // we're doing this quick and dirty.
80: return false;
81: }
82:
83: }
|