diff options
Diffstat (limited to 'ndb/include/logger/SysLogHandler.hpp')
-rw-r--r-- | ndb/include/logger/SysLogHandler.hpp | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/ndb/include/logger/SysLogHandler.hpp b/ndb/include/logger/SysLogHandler.hpp new file mode 100644 index 00000000000..4f13308d61b --- /dev/null +++ b/ndb/include/logger/SysLogHandler.hpp @@ -0,0 +1,97 @@ +/* Copyright (C) 2003 MySQL AB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +#ifndef SYSLOGHANDLER_H +#define SYSLOGHANDLER_H + +#include "LogHandler.hpp" +#include <syslog.h> + +/** + * Logs messages to syslog. The default identity is 'NDB'. + * See 'man 3 syslog'. + * + * It logs the following severity levels. + * <pre> + * + * LOG_ALERT A condition that should be corrected + * immediately, such as a corrupted system + * database. + * + * LOG_CRIT Critical conditions, such as hard device + * errors. + * + * LOG_ERR Errors. + * + * LOG_WARNING Warning messages. + * + * LOG_INFO Informational messages. + * + * LOG_DEBUG Messages that contain information nor- + * mally of use only when debugging a pro- + * gram. + * </pre> + * + * @see LogHandler + * @version #@ $Id: SysLogHandler.hpp,v 1.2 2003/09/01 10:15:53 innpeno Exp $ + */ +class SysLogHandler : public LogHandler +{ +public: + /** + * Default constructor. + */ + SysLogHandler(); + + /** + * Create a new syslog handler with the specified identity. + * + * @param pIdentity a syslog identity. + * @param facility syslog facility, defaults to LOG_USER + */ + SysLogHandler(const char* pIdentity, int facility = LOG_USER); + + /** + * Destructor. + */ + virtual ~SysLogHandler(); + + virtual bool open(); + virtual bool close(); + + virtual bool setParam(const BaseString ¶m, const BaseString &value); + bool setFacility(const BaseString &facility); + +protected: + virtual void writeHeader(const char* pCategory, Logger::LoggerLevel level); + virtual void writeMessage(const char* pMsg); + virtual void writeFooter(); + +private: + /** Prohibit*/ + SysLogHandler(const SysLogHandler&); + SysLogHandler operator = (const SysLogHandler&); + bool operator == (const SysLogHandler&); + + int m_severity; + const char* m_pCategory; + + /** Syslog identity for all log entries. */ + const char* m_pIdentity; + int m_facility; +}; + +#endif |