class Poco::EventLogChannel

Overview

This Windows-only channel works with the Windows NT Event Log service. Moreā€¦

#include <EventLogChannel.h>

class EventLogChannel: public Poco::Channel
{
public:
    // fields

    static const std::string PROP_NAME;
    static const std::string PROP_HOST;
    static const std::string PROP_LOGHOST;
    static const std::string PROP_LOGFILE;

    // construction

    EventLogChannel();
    EventLogChannel(const std::string& name);

    EventLogChannel(
        const std::string& name,
        const std::string& host
        );

    // methods

    virtual
    void
    open();

    virtual
    void
    close();

    virtual
    void
    log(const Message& msg);

    virtual
    void
    setProperty(
        const std::string& name,
        const std::string& value
        );

    virtual
    std::string
    getProperty(const std::string& name) const;

protected:
    // methods

    void
    setUpRegistry() const;

    static
    int
    getType(const Message& msg);

    static
    int
    getCategory(const Message& msg);

    static
    std::string
    findLibrary(const char* name);
};

Inherited Members

public:
    // methods

    virtual
    void
    setProperty(
        const std::string& name,
        const std::string& value
        ) = 0;

    virtual
    std::string
    getProperty(const std::string& name) const = 0;

    void
    duplicate() const;

    void
    release() const;

    int
    referenceCount() const;

    virtual
    void
    open();

    virtual
    void
    close();

    virtual
    void
    log(const Message& msg) = 0;

    virtual
    void
    setProperty(
        const std::string& name,
        const std::string& value
        );

    virtual
    std::string
    getProperty(const std::string& name) const;

Detailed Documentation

This Windows-only channel works with the Windows NT Event Log service.

To work properly, the EventLogChannel class requires that either the PocoFoundation.dll or the PocoMsg.dll Dynamic Link Library containing the message definition resources can be found in $PATH.

Construction

EventLogChannel()

Creates the EventLogChannel.

The name of the current application (or more correctly, the name of its executable) is taken as event source name.

EventLogChannel(const std::string& name)

Creates the EventLogChannel with the given event source name.

EventLogChannel(
    const std::string& name,
    const std::string& host
    )

Creates an EventLogChannel with the given event source name that routes messages to the given host.

Methods

virtual
void
open()

Opens the EventLogChannel.

If necessary, the required registry entries to register a message resource DLL are made.

virtual
void
close()

Closes the EventLogChannel.

virtual
void
log(const Message& msg)

Logs the given message to the Windows Event Log.

The message type and priority are mapped to appropriate values for Event Log type and category.

virtual
void
setProperty(
    const std::string& name,
    const std::string& value
    )

Sets or changes a configuration property.

The following properties are supported:

* name:    The name of the event source.
* loghost: The name of the host where the Event Log service is running.
           The default is "localhost".
* host:    same as host.
* logfile: The name of the log file. The default is "Application".
virtual
std::string
getProperty(const std::string& name) const

Returns the value of the given property.