Advertisement
Guest User

Untitled

a guest
Oct 12th, 2011
323
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.23 KB | None | 0 0
  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.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement