syslogchannel.h
来自「This software aims to create an applet a」· C头文件 代码 · 共 146 行
H
146 行
//
// SyslogChannel.h
//
// $Id: //poco/Main/Foundation/include/Foundation/SyslogChannel.h#5 $
//
// Definition of the SyslogChannel class specific to UNIX.
//
// Copyright (c) 2004, Guenter Obiltschnig/Applied Informatics.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions
// are met:
//
// 1. Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
//
// 2. Redistributions in binary form must reproduce the above copyright
// notice, this list of conditions and the following disclaimer in the
// documentation and/or other materials provided with the distribution.
//
// 3. Redistributions in any form must be accompanied by information on
// how to obtain complete source code for this software and any
// accompanying software that uses this software. The source code
// must either be included in the distribution or be available for no
// more than the cost of distribution plus a nominal fee, and must be
// freely redistributable under reasonable conditions. For an
// executable file, complete source code means the source code for all
// modules it contains. It does not include source code for modules or
// files that typically accompany the major components of the operating
// system on which the executable file runs.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
// COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE.
//
#ifndef Foundation_SyslogChannel_INCLUDED
#define Foundation_SyslogChannel_INCLUDED
#ifndef Foundation_Foundation_INCLUDED
#include "Foundation/Foundation.h"
#endif
#ifndef Foundation_Channel_INCLUDED
#include "Foundation/Channel.h"
#endif
Foundation_BEGIN
class Foundation_API SyslogChannel: public Channel
/// This Unix-only channel works with the Unix syslog service.
{
public:
enum Option
{
SYSLOG_PID = 0x01, /// log the pid with each message
SYSLOG_CONS = 0x02, /// log on the console if errors in sending
SYSLOG_NDELAY = 0x08, /// don't delay open
SYSLOG_PERROR = 0x20 /// log to stderr as well (not supported on all platforms)
};
enum Facility
{
SYSLOG_KERN = ( 0<<3), /// kernel messages
SYSLOG_USER = ( 1<<3), /// random user-level messages
SYSLOG_MAIL = ( 2<<3), /// mail system
SYSLOG_DAEMON = ( 3<<3), /// system daemons
SYSLOG_AUTH = ( 4<<3), /// security/authorization messages
SYSLOG_SYSLOG = ( 5<<3), /// messages generated internally by syslogd
SYSLOG_LPR = ( 6<<3), /// line printer subsystem
SYSLOG_NEWS = ( 7<<3), /// network news subsystem
SYSLOG_UUCP = ( 8<<3), /// UUCP subsystem
SYSLOG_CRON = ( 9<<3), /// clock daemon
SYSLOG_AUTHPRIV = (10<<3), /// security/authorization messages (private)
SYSLOG_FTP = (11<<3), /// ftp daemon
SYSLOG_LOCAL0 = (16<<3), /// reserved for local use
SYSLOG_LOCAL1 = (17<<3), /// reserved for local use
SYSLOG_LOCAL2 = (18<<3), /// reserved for local use
SYSLOG_LOCAL3 = (19<<3), /// reserved for local use
SYSLOG_LOCAL4 = (20<<3), /// reserved for local use
SYSLOG_LOCAL5 = (21<<3), /// reserved for local use
SYSLOG_LOCAL6 = (22<<3), /// reserved for local use
SYSLOG_LOCAL7 = (23<<3) /// reserved for local use
};
SyslogChannel();
/// Creates a SyslogChannel.
SyslogChannel(const std::string& name, int options = SYSLOG_CONS, int facility = SYSLOG_USER);
/// Creates a SyslogChannel with the given name, options and facility.
void open();
/// Opens the SyslogChannel.
void close();
/// Closes the SyslogChannel.
void log(const Message& msg);
/// Sens the message's text to the syslog service.
void setProperty(const std::string& name, const std::string& value);
/// Sets the property with the given value.
///
/// The following properties are supported:
///
/// * name: The name used to identify the source of log messages.
/// * facility: The facility added to each log message. See the Facility enumeration for a list of supported values.
/// * options: The logging options. See the Option enumeration for a list of supported values.
std::string getProperty(const std::string& name) const;
/// Returns the value of the property with the given name.
static const std::string PROP_NAME;
static const std::string PROP_FACILITY;
static const std::string PROP_OPTIONS;
protected:
~SyslogChannel();
static int getPrio(const Message& msg);
private:
std::string _name;
int _options;
int _facility;
bool _open;
};
Foundation_END
#endif // Foundation_SyslogChannel_INCLUDED
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?