class Poco::LoggingFactory

Overview

An extensible factory for channels and formatters. Moreā€¦

#include <LoggingFactory.h>

class LoggingFactory
{
public:
    // typedefs

    typedef AbstractInstantiator<Channel> ChannelInstantiator;
    typedef AbstractInstantiator<Formatter> FormatterFactory;

    // methods

    void
    registerChannelClass(
        const std::string& className,
        ChannelInstantiator* pFactory
        );

    void
    registerFormatterClass(
        const std::string& className,
        FormatterFactory* pFactory
        );

    Channel*
    createChannel(const std::string& className) const;

    Formatter*
    createFormatter(const std::string& className) const;

    static
    LoggingFactory&
    defaultFactory();
};

Detailed Documentation

An extensible factory for channels and formatters.

The following channel classes are pre-registered:

- AsyncChannel
- ConsoleChannel
- EventLogChannel (Windows platforms only)
- FileChannel
- FormattingChannel
- NullChannel
- OpcomChannel (OpenVMS only)
- SplitterChannel
- SyslogChannel (Unix platforms only)

The following formatter classes are pre-registered:

- PatternFormatter

Construction

~LoggingFactory()

Destroys the LoggingFactory.

Methods

void
registerChannelClass(
    const std::string& className,
    ChannelInstantiator* pFactory
    )

Registers a channel class with the LoggingFactory.

void
registerFormatterClass(
    const std::string& className,
    FormatterFactory* pFactory
    )

Registers a formatter class with the LoggingFactory.

Channel*
createChannel(const std::string& className) const

Creates a new Channel instance from specified class.

Throws a NotFoundException if the specified channel class has not been registered.

Formatter*
createFormatter(const std::string& className) const

Creates a new Formatter instance from specified class.

Throws a NotFoundException if the specified formatter class has not been registered.

static
LoggingFactory&
defaultFactory()

Returns a reference to the default LoggingFactory.