Library: Foundation
Package: Logging
Header: Poco/LoggingFactory.h
Description
An extensible factory for channels and formatters.
The following channel classes are pre-registered:
- AsyncChannel
- ConsoleChannel
- EventLogChannel (Windows platforms only)
- FileChannel
- FormattingChannel
- NullChannel
- SplitterChannel
- SyslogChannel (Unix platforms only)
The following formatter classes are pre-registered:
Member Summary
Member Functions: createChannel, createFormatter, defaultFactory, registerChannelClass, registerFormatterClass
Types Aliases
ChannelInstantiator
using ChannelInstantiator = AbstractInstantiator < Channel >;
FormatterFactory
using FormatterFactory = AbstractInstantiator < Formatter >;
Constructors
LoggingFactory
Creates the LoggingFactory.
Automatically registers class factories for the built-in channel and formatter classes.
Destructor
~LoggingFactory
~LoggingFactory();
Destroys the LoggingFactory.
Member Functions
createChannel
Channel::Ptr 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.
createFormatter
Formatter::Ptr 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.
defaultFactory
static LoggingFactory & defaultFactory();
Returns a reference to the default LoggingFactory.
registerChannelClass
void registerChannelClass(
const std::string & className,
ChannelInstantiator * pFactory
);
Registers a channel class with the LoggingFactory.
registerFormatterClass
void registerFormatterClass(
const std::string & className,
FormatterFactory * pFactory
);
Registers a formatter class with the LoggingFactory.