Library: Foundation
Package: Logging
Header: Poco/SimpleFileChannel.h
Description
A Channel that writes to a file. This class only supports simple log file rotation.
For more features, see the FileChannel class.
Only the message's text is written, followed by a newline.
Chain this channel to a FormattingChannel with an appropriate Formatter to control what is in the text.
Log file rotation based on log file size is supported.
If rotation is enabled, the SimpleFileChannel will alternate between two log files. If the size of the primary log file exceeds a specified limit, the secondary log file will be used, and vice versa.
Log rotation is configured with the "rotation" property, which supports the following values:
- never: no log rotation
- <n>: the file is rotated when its size exceeds <n> bytes.
- <n> K: the file is rotated when its size exceeds <n> Kilobytes.
- <n> M: the file is rotated when its size exceeds <n> Megabytes.
The path of the (primary) log file can be specified with the "path" property. Optionally, the path of the secondary log file can be specified with the "secondaryPath" property.
If no secondary path is specified, the secondary path will default to <primaryPath>.1.
The flush property specifies whether each log message is flushed immediately to the log file (which may hurt application performance, but ensures that everything is in the log in case of a system crash), or whether it's allowed to stay in the system's file buffer for some time. Valid values are:
- true: Every message is immediately flushed to the log file (default).
- false: Messages are not immediately flushed to the log file.
Inheritance
Direct Base Classes: Channel
All Base Classes: Channel, Configurable, RefCountedObject
Member Summary
Member Functions: close, creationDate, getProperty, log, open, path, rotate, secondaryPath, setFlush, setProperty, setRotation, size
Inherited Functions: close, duplicate, getProperty, log, open, referenceCount, release, setProperty
Types Aliases
Ptr
using Ptr = AutoPtr < SimpleFileChannel >;
Constructors
SimpleFileChannel
Creates the FileChannel.
SimpleFileChannel
SimpleFileChannel(
const std::string & path
);
Creates the FileChannel for a file with the given path.
Destructor
~SimpleFileChannel
~SimpleFileChannel() override;
Member Functions
close
void close() override;
Closes the FileChannel.
See also: Poco::Channel::close()
creationDate
Timestamp creationDate() const;
Returns the log file's creation date.
getProperty
std::string getProperty(
const std::string & name
) const override;
Returns the value of the property with the given name. See setProperty() for a description of the supported properties.
See also: Poco::Channel::getProperty()
log
void log(
const Message & msg
) override;
Logs the given message to the file.
See also: Poco::Channel::log()
open
void open() override;
Opens the FileChannel and creates the log file if necessary.
See also: Poco::Channel::open()
path
const std::string & path() const;
Returns the log file's primary path.
secondaryPath
const std::string & secondaryPath() const;
Returns the log file's secondary path.
setProperty
void setProperty(
const std::string & name,
const std::string & value
) override;
Sets the property with the given name.
The following properties are supported:
- path: The primary log file's path.
- secondaryPath: The secondary log file's path.
- rotation: The log file's rotation mode. See the SimpleFileChannel class for details.
- flush: Specifies whether messages are immediately flushed to the log file. See the SimpleFileChannel class for details.
See also: Poco::Channel::setProperty()
size
UInt64 size() const;
Returns the log file's current size in bytes.
rotate
void rotate();
setFlush
void setFlush(
const std::string & flush
);
setRotation
void setRotation(
const std::string & rotation
);
Variables
PROP_FLUSH
static const std::string PROP_FLUSH;
PROP_PATH
static const std::string PROP_PATH;
PROP_ROTATION
static const std::string PROP_ROTATION;
PROP_SECONDARYPATH
static const std::string PROP_SECONDARYPATH;