package org.graylog2.syslog4j.util; import java.io.UnsupportedEncodingException; import java.net.InetAddress; import java.net.UnknownHostException; import org.graylog2.syslog4j.SyslogCharSetIF; import org.graylog2.syslog4j.SyslogConstants; import org.graylog2.syslog4j.SyslogRuntimeException; /** * SyslogUtility provides several common utility methods used within * Syslog4j. * <p/> * <p>Syslog4j is licensed under the Lesser GNU Public License v2.1. A copy * of the LGPL license is available in the META-INF folder in all * distributions of Syslog4j and in the base directory of the "doc" ZIP.</p> * * @author <syslog4j@productivity.org> * @version $Id: SyslogUtility.java,v 1.21 2010/11/28 01:38:08 cvs Exp $ */ public final class SyslogUtility implements SyslogConstants { private static final long serialVersionUID = 915031554586613648L; private SyslogUtility() { // } public static final InetAddress getInetAddress(String host) throws SyslogRuntimeException { InetAddress address = null; try { address = InetAddress.getByName(host); } catch (UnknownHostException uhe) { throw new SyslogRuntimeException(uhe); } return address; } public static final String getFacilityString(int syslogFacility) { switch (syslogFacility) { case FACILITY_KERN: return "kern"; case FACILITY_USER: return "user"; case FACILITY_MAIL: return "mail"; case FACILITY_DAEMON: return "daemon"; case FACILITY_AUTH: return "auth"; case FACILITY_SYSLOG: return "syslog"; case FACILITY_LPR: return "lpr"; case FACILITY_NEWS: return "news"; case FACILITY_UUCP: return "uucp"; case FACILITY_CRON: return "cron"; case FACILITY_AUTHPRIV: return "authpriv"; case FACILITY_FTP: return "ftp"; case FACILITY_NTP: return "ntp"; case FACILITY_AUDIT: return "audit"; case FACILITY_ALERT: return "alert"; case FACILITY_CLOCK2: return "clock2"; case FACILITY_LOCAL0: return "local0"; case FACILITY_LOCAL1: return "local1"; case FACILITY_LOCAL2: return "local2"; case FACILITY_LOCAL3: return "local3"; case FACILITY_LOCAL4: return "local4"; case FACILITY_LOCAL5: return "local5"; case FACILITY_LOCAL6: return "local6"; case FACILITY_LOCAL7: return "local7"; default: return "UNKNOWN"; } } public static final int getFacility(String facilityName) { if (facilityName == null) { return -1; } String _facilityName = facilityName.trim(); if ("KERN".equalsIgnoreCase(_facilityName)) { return FACILITY_KERN; } else if ("USER".equalsIgnoreCase(_facilityName)) { return FACILITY_USER; } else if ("MAIL".equalsIgnoreCase(_facilityName)) { return FACILITY_MAIL; } else if ("DAEMON".equalsIgnoreCase(_facilityName)) { return FACILITY_DAEMON; } else if ("AUTH".equalsIgnoreCase(_facilityName)) { return FACILITY_AUTH; } else if ("SYSLOG".equalsIgnoreCase(_facilityName)) { return FACILITY_SYSLOG; } else if ("LPR".equalsIgnoreCase(_facilityName)) { return FACILITY_LPR; } else if ("NEWS".equalsIgnoreCase(_facilityName)) { return FACILITY_NEWS; } else if ("UUCP".equalsIgnoreCase(_facilityName)) { return FACILITY_UUCP; } else if ("CRON".equalsIgnoreCase(_facilityName)) { return FACILITY_CRON; } else if ("AUTHPRIV".equalsIgnoreCase(_facilityName)) { return FACILITY_AUTHPRIV; } else if ("FTP".equalsIgnoreCase(_facilityName)) { return FACILITY_FTP; } else if ("NTP".equalsIgnoreCase(_facilityName)) { return FACILITY_NTP; } else if ("AUDIT".equalsIgnoreCase(_facilityName)) { return FACILITY_AUDIT; } else if ("ALERT".equalsIgnoreCase(_facilityName)) { return FACILITY_ALERT; } else if ("CLOCK2".equalsIgnoreCase(_facilityName)) { return FACILITY_CLOCK2; } else if ("LOCAL0".equalsIgnoreCase(_facilityName)) { return FACILITY_LOCAL0; } else if ("LOCAL1".equalsIgnoreCase(_facilityName)) { return FACILITY_LOCAL1; } else if ("LOCAL2".equalsIgnoreCase(_facilityName)) { return FACILITY_LOCAL2; } else if ("LOCAL3".equalsIgnoreCase(_facilityName)) { return FACILITY_LOCAL3; } else if ("LOCAL4".equalsIgnoreCase(_facilityName)) { return FACILITY_LOCAL4; } else if ("LOCAL5".equalsIgnoreCase(_facilityName)) { return FACILITY_LOCAL5; } else if ("LOCAL6".equalsIgnoreCase(_facilityName)) { return FACILITY_LOCAL6; } else if ("LOCAL7".equalsIgnoreCase(_facilityName)) { return FACILITY_LOCAL7; } else { return -1; } } public static final int getLevel(String levelName) { if (levelName == null) { return -1; } String _levelName = levelName.trim(); if ("DEBUG".equalsIgnoreCase(_levelName)) { return LEVEL_DEBUG; } else if ("INFO".equalsIgnoreCase(_levelName)) { return LEVEL_INFO; } else if ("NOTICE".equalsIgnoreCase(_levelName)) { return LEVEL_NOTICE; } else if ("WARN".equalsIgnoreCase(_levelName)) { return LEVEL_WARN; } else if ("ERROR".equalsIgnoreCase(_levelName)) { return LEVEL_ERROR; } else if ("CRITICAL".equalsIgnoreCase(_levelName)) { return LEVEL_CRITICAL; } else if ("ALERT".equalsIgnoreCase(_levelName)) { return LEVEL_ALERT; } else if ("EMERGENCY".equalsIgnoreCase(_levelName)) { return LEVEL_EMERGENCY; } else { return -1; } } public static final boolean isClassExists(String className) { try { Class.forName(className); return true; } catch (ClassNotFoundException cnfe) { // } return false; } public static final String getLocalName() { String localName = SEND_LOCAL_NAME_DEFAULT_VALUE; try { InetAddress addr = InetAddress.getLocalHost(); localName = addr.getHostName(); } catch (UnknownHostException uhe) { // } return localName; } public static final byte[] getBytes(SyslogCharSetIF syslogCharSet, String data) { byte[] dataBytes = null; try { dataBytes = data.getBytes(syslogCharSet.getCharSet()); } catch (UnsupportedEncodingException uee) { dataBytes = data.getBytes(); } return dataBytes; } public static final String newString(SyslogCharSetIF syslogCharSet, byte[] dataBytes) { String data = newString(syslogCharSet, dataBytes, dataBytes.length); return data; } public static final String newString(SyslogCharSetIF syslogCharSet, byte[] dataBytes, int dataLength) { String data = null; try { data = new String(dataBytes, 0, dataLength, syslogCharSet.getCharSet()); } catch (UnsupportedEncodingException uee) { data = new String(dataBytes); } return data; } public static final String getLevelString(int level) { switch (level) { case SyslogConstants.LEVEL_DEBUG: return "DEBUG"; case SyslogConstants.LEVEL_INFO: return "INFO"; case SyslogConstants.LEVEL_NOTICE: return "NOTICE"; case SyslogConstants.LEVEL_WARN: return "WARN"; case SyslogConstants.LEVEL_ERROR: return "ERROR"; case SyslogConstants.LEVEL_CRITICAL: return "CRITICAL"; case SyslogConstants.LEVEL_ALERT: return "ALERT"; case SyslogConstants.LEVEL_EMERGENCY: return "EMERGENCY"; default: return "UNKNOWN"; } } public static void sleep(long duration) { try { Thread.sleep(duration); } catch (InterruptedException ie) { // } } }