Library: Foundation
Package: Logging
Header: Poco/AsyncChannel.h
A channel uses a separate thread for logging.
Using this channel can help to improve the performance of applications that produce huge amounts of log messages or that write log messages to multiple channels simultaneously.
All log messages are put into a queue and this queue is then processed by a separate thread.
Direct Base Classes: Channel, Runnable
All Base Classes: Channel, Configurable, RefCountedObject, Runnable
Member Functions: close, getChannel, log, open, run, setChannel, setPriority, setProperty
Inherited Functions: close, duplicate, getProperty, log, open, referenceCount, release, run, setProperty
AsyncChannel(
Channel * pChannel = 0,
Thread::Priority prio = Thread::PRIO_NORMAL
);
Creates the AsyncChannel and connects it to the given channel.
~AsyncChannel();
void close();
Closes the channel and stops the background logging thread.
See also: Poco::Channel::close()
Channel * getChannel() const;
Returns the target channel.
void log(
const Message & msg
);
Queues the message for processing by the background thread.
See also: Poco::Channel::log()
void open();
Opens the channel and creates the background logging thread.
See also: Poco::Channel::open()
void setChannel(
Channel * pChannel
);
Connects the AsyncChannel to the given target channel. All messages will be forwarded to this channel.
void setProperty(
const std::string & name,
const std::string & value
);
Sets or changes a configuration property.
The "channel" property allows setting the target channel via the LoggingRegistry. The "channel" property is set-only.
The "priority" property allows setting the thread priority. The following values are supported:
The "priority" property is set-only.
See also: Poco::Channel::setProperty()
void run();
See also: Poco::Runnable::run()
void setPriority(
const std::string & value
);