daily pastebin goal
36%
SHARE
TWEET

Untitled

a guest Oct 12th, 2011 258 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import java.util.Collections;
  2. import java.util.logging.Filter;
  3. import java.util.logging.Formatter;
  4. import java.util.logging.Handler;
  5. import java.util.logging.LogRecord;
  6.  
  7. import org.apache.log4j.Level;
  8. import org.apache.log4j.Logger;
  9. import org.apache.log4j.net.SyslogAppender;
  10. import org.apache.log4j.spi.LocationInfo;
  11. import org.apache.log4j.spi.LoggingEvent;
  12. import org.apache.log4j.spi.ThrowableInformation;
  13. import org.jboss.logmanager.ExtLogRecord;
  14. import org.jboss.logmanager.log4j.handlers.Log4jAppenderHandler;
  15.  
  16. public class SyslogHandler extends Handler {
  17.  
  18.         private final Log4jAppenderHandler log4j = new Log4jAppenderHandler(new SyslogAppender());
  19.  
  20.         @Override
  21.         public void publish(LogRecord record) {
  22.                 if (record == null) {
  23.                         return;
  24.                 }
  25.                 ExtLogRecord extRecord;
  26.                 if (record instanceof ExtLogRecord) {
  27.                         extRecord = (ExtLogRecord) record;
  28.                 } else {
  29.                         extRecord = ExtLogRecord.wrap(record);
  30.                 }
  31.                 if (isLoggable(record)) {
  32.                         LoggingEvent event = new LoggingEvent(extRecord.getLoggerClassName(),
  33.                                         Logger.getLogger(extRecord.getLoggerClassName()), extRecord.getMillis(),
  34.                                         Level.toLevel(extRecord.getLevel().toString()), extRecord.getFormattedMessage(),
  35.                                         extRecord.getThreadName(), extRecord.getThrown() == null ? null
  36.                                                         : new ThrowableInformation(extRecord.getThrown()), extRecord.getNdc(),
  37.                                         new LocationInfo(new Throwable(), extRecord.getLoggerClassName()),
  38.                                         Collections.singletonMap("org.jboss.logmanager.record", extRecord));
  39.                         ((SyslogAppender) log4j.getAppender()).doAppend(event);
  40.                         flush();
  41.                 }
  42.         }
  43.  
  44.         @Override
  45.         public void flush() {
  46.                 log4j.flush();
  47.         }
  48.  
  49.         @Override
  50.         public void close() throws SecurityException {
  51.                 log4j.close();
  52.         }
  53.  
  54.         @Override
  55.         public void setFilter(Filter filter) {
  56.                 log4j.setFilter(filter);
  57.         }
  58.  
  59.         @Override
  60.         public void setFormatter(Formatter formatter) {
  61.                 log4j.setFormatter(formatter);
  62.         }
  63.  
  64.         public void setFacility(String facility) {
  65.                 ((SyslogAppender) log4j.getAppender()).setFacility(facility);
  66.         }
  67.  
  68.         public void setHost(String host) {
  69.                 ((SyslogAppender) log4j.getAppender()).setSyslogHost(host);
  70.         }
  71.  
  72.         public void setThreshold(String threshold) {
  73.                 ((SyslogAppender) log4j.getAppender()).setThreshold(Level.toLevel(threshold));
  74.         }
  75. }
  76.  
  77.  
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top