All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.cloudbees.syslog.integration.jul.SyslogHandler Maven / Gradle / Ivy

/**
 * Copyright 2010-2016 OrientDB LTD (http://orientdb.com)
 *
 * 

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of the License at * *

http://www.apache.org/licenses/LICENSE-2.0 * *

Unless required by applicable law or agreed to in writing, software distributed under the * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing permissions and * limitations under the License. * *

For more information: http://www.orientdb.com */ package com.cloudbees.syslog.integration.jul; import com.cloudbees.syslog.Facility; import com.cloudbees.syslog.Severity; import com.cloudbees.syslog.SyslogMessage; import com.cloudbees.syslog.integration.jul.util.LevelHelper; import com.cloudbees.syslog.integration.jul.util.LogManagerHelper; import com.cloudbees.syslog.sender.SyslogMessageSender; import com.cloudbees.syslog.sender.UdpSyslogMessageSender; import java.io.Closeable; import java.io.IOException; import java.util.logging.*; /** @author Cyrille Le Clerc */ public class SyslogHandler extends AbstractHandler { private SyslogMessageSender syslogMessageSender; private String appName; private Facility facility = Facility.USER; private Severity severity = Severity.DEBUG; private String messageHostname; public SyslogHandler() { super(); LogManager manager = LogManager.getLogManager(); String cname = getClass().getName(); UdpSyslogMessageSender udpSender = new UdpSyslogMessageSender(); udpSender.setSyslogServerHostname( LogManagerHelper.getStringProperty( manager, cname + ".syslogServerHostname", SyslogMessageSender.DEFAULT_SYSLOG_HOST)); udpSender.setSyslogServerPort( LogManagerHelper.getIntProperty( manager, cname + ".syslogServerPort", SyslogMessageSender.DEFAULT_SYSLOG_PORT)); appName = LogManagerHelper.getStringProperty(manager, cname + ".appName", this.appName); udpSender.setDefaultAppName(appName); facility = Facility.fromLabel( LogManagerHelper.getStringProperty( manager, cname + ".facility", this.facility.label())); udpSender.setDefaultFacility(facility); severity = Severity.fromLabel( LogManagerHelper.getStringProperty( manager, cname + ".severity", this.severity.label())); udpSender.setDefaultSeverity(severity); messageHostname = LogManagerHelper.getStringProperty( manager, cname + ".messageHostname", this.messageHostname); udpSender.setDefaultMessageHostname(messageHostname); this.syslogMessageSender = udpSender; } public SyslogHandler(SyslogMessageSender syslogMessageSender) { this(syslogMessageSender, Level.INFO, null); } public SyslogHandler(SyslogMessageSender syslogMessageSender, Level level, Filter filter) { super(level, filter); this.syslogMessageSender = syslogMessageSender; } @Override protected Formatter getDefaultFormatter() { return new SyslogMessageFormatter(); } @Override public void publish(LogRecord record) { if (!isLoggable(record)) return; String msg = getFormatter().format(record); Severity severity = LevelHelper.toSeverity(record.getLevel()); if (severity == null) severity = this.severity; SyslogMessage message = new SyslogMessage() .withTimestamp(record.getMillis()) .withSeverity(severity) .withAppName(this.appName) .withHostname(this.messageHostname) .withFacility(this.facility) .withMsg(msg); try { syslogMessageSender.sendMessage(message); } catch (IOException e) { e.printStackTrace(); } } @Override public void flush() {} @Override public void close() throws SecurityException { if (syslogMessageSender instanceof Closeable) { try { ((Closeable) syslogMessageSender).close(); } catch (IOException e) { e.printStackTrace(); } } } @Override public String getEncoding() { throw new IllegalStateException(); } public String getAppName() { return appName; } public void setAppName(String appName) { this.appName = appName; } public Facility getFacility() { return facility; } public void setFacility(Facility facility) { this.facility = facility; } public Severity getSeverity() { return severity; } public void setSeverity(Severity severity) { this.severity = severity; } public String getMessageHostname() { return messageHostname; } public void setMessageHostname(String messageHostname) { this.messageHostname = messageHostname; } public SyslogMessageSender getSyslogMessageSender() { return syslogMessageSender; } public void setSyslogMessageSender(SyslogMessageSender syslogMessageSender) { this.syslogMessageSender = syslogMessageSender; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy