Library: Foundation
Package: Logging
Header: Poco/Channel.h
Description
The base class for all Channel classes.
Supports reference counting based garbage collection and provides trivial implementations of getProperty() and setProperty().
Inheritance
Direct Base Classes: Configurable, RefCountedObject
All Base Classes: Configurable, RefCountedObject
Known Derived Classes: Poco::Data::SQLChannel, AsyncChannel, ConsoleChannel, ColorConsoleChannel, EventChannel, EventLogChannel, FastLogger, FileChannel, FormattingChannel, Logger, NullChannel, SimpleFileChannel, SplitterChannel, StreamChannel, SyslogChannel, WindowsConsoleChannel, WindowsColorConsoleChannel, Poco::Net::RemoteSyslogChannel, Poco::Net::RemoteSyslogListener, Poco::Net::SMTPChannel
Member Summary
Member Functions: close, getProperty, log, open, setProperty
Inherited Functions: duplicate, getProperty, referenceCount, release, setProperty
Types Aliases
Ptr
using Ptr = AutoPtr < Channel >;
Constructors
Channel
Channel();
Creates the channel and initializes the reference count to one.
Destructor
~Channel
~Channel() override;
Member Functions
close
virtual void close();
Does whatever is necessary to close the channel. The default implementation does nothing.
getProperty
std::string getProperty(
const std::string & name
) const override;
Throws a PropertyNotSupportedException.
See also: Poco::Configurable::getProperty()
log
virtual void log(
const Message & msg
) = 0;
Logs the given message to the channel. Must be overridden by subclasses.
If the channel has not been opened yet, the log() method will open it.
log
virtual void log(
Message && msg
);
Logs the given message to the channel by moving it.
This overload allows channels that need to store or queue messages (such as AsyncChannel) to avoid copying the message.
The default implementation simply calls log(const Message&), which is appropriate for channels that immediately process and discard the message (e.g., ConsoleChannel, FileChannel).
Subclasses that buffer or queue messages should override this method to take advantage of move semantics.
open
virtual void open();
Does whatever is necessary to open the channel. The default implementation does nothing.
setProperty
void setProperty(
const std::string & name,
const std::string & value
) override;
Throws a PropertyNotSupportedException.
See also: Poco::Configurable::setProperty()