Logger
Logger
#include <icy/logger.h>class LoggerDefined in src/base/include/icy/logger.h:156
Logger class.
List of all members
| Name | Kind | Owner |
|---|---|---|
Singleton< Logger > | friend | Declared here |
Thread | friend | Declared here |
Logger | function | Declared here |
~Logger | function | Declared here |
add | function | Declared here |
remove | function | Declared here |
get | function | Declared here |
setDefault | function | Declared here |
setWriter | function | Declared here |
getDefault | function | Declared here |
write | function | Declared here |
write | function | Declared here |
instance | function | Declared here |
setInstance | function | Declared here |
destroy | function | Declared here |
levelEnabled | function | Declared here |
lowerLevelFilter | function | Declared here |
_mutex | variable | Declared here |
_channels | variable | Declared here |
_defaultChannel | variable | Declared here |
_writer | variable | Declared here |
Logger | function | Declared here |
operator= | function | Declared here |
Logger | function | Declared here |
operator= | function | Declared here |
Friends
| Name | Description |
|---|---|
Singleton< Logger > | |
Thread |
Singleton< Logger >
friend class Singleton< Logger >Defined in src/base/include/icy/logger.h:228
Thread
friend class ThreadDefined in src/base/include/icy/logger.h:233
Public Methods
| Return | Name | Description |
|---|---|---|
Logger | ||
void | add | Adds the given log channel. Takes ownership. |
void | remove | Removes the given log channel by name. |
LogChannel * | get const | Returns the specified log channel. Throws an exception if the channel doesn't exist. |
void | setDefault | Sets the default log to the specified log channel. |
void | setWriter | Sets the log writer instance. Takes ownership. |
LogChannel * | getDefault const | Returns the default log channel, or the nullptr channel if no default channel has been set. |
void | write | Writes the given message to the default log channel. The message will be copied. |
void | write | Writes the given message to the default log channel. |
Logger
Logger()Defined in src/base/include/icy/logger.h:159
add
void add(std::unique_ptr< LogChannel > channel)Defined in src/base/include/icy/logger.h:173
Adds the given log channel. Takes ownership.
remove
void remove(std::string_view name)Defined in src/base/include/icy/logger.h:176
Removes the given log channel by name.
get
const
LogChannel * get(std::string_view name, bool whiny = true) constDefined in src/base/include/icy/logger.h:180
Returns the specified log channel. Throws an exception if the channel doesn't exist.
setDefault
void setDefault(std::string_view name)Defined in src/base/include/icy/logger.h:183
Sets the default log to the specified log channel.
setWriter
void setWriter(std::unique_ptr< LogWriter > writer)Defined in src/base/include/icy/logger.h:186
Sets the log writer instance. Takes ownership.
getDefault
const
LogChannel * getDefault() constDefined in src/base/include/icy/logger.h:190
Returns the default log channel, or the nullptr channel if no default channel has been set.
write
void write(const LogStream & stream)Defined in src/base/include/icy/logger.h:194
Writes the given message to the default log channel. The message will be copied.
write
void write(std::unique_ptr< LogStream > stream)Defined in src/base/include/icy/logger.h:197
Writes the given message to the default log channel.
Public Static Methods
| Return | Name | Description |
|---|---|---|
Logger & | instance static | Returns the default logger singleton. Logger instances may be created separately as needed. |
void | setInstance static | Sets the default logger singleton instance. |
void | destroy static | Destroys the default logger singleton instance. |
bool | levelEnabled static inline noexcept | Returns true if a message at the given level could be accepted by any existing channel. Cheap (single relaxed atomic load) so the logging macros can skip argument formatting entirely when the level is filtered out. Conservative: never filters a deliverable message, but raising a channel's level does not raise the filter back. |
void | lowerLevelFilter static inline noexcept | Lowers the global level filter so messages at level and above pass [levelEnabled()](#levelenabled). Called by [LogChannel](icy-LogChannel.html#logchannel) on construction and setLevel(). |
instance
static
static Logger & instance()Defined in src/base/include/icy/logger.h:164
Returns the default logger singleton. Logger instances may be created separately as needed.
setInstance
static
static void setInstance(Logger * logger, bool freeExisting = true)Defined in src/base/include/icy/logger.h:167
Sets the default logger singleton instance.
destroy
static
static void destroy()Defined in src/base/include/icy/logger.h:170
Destroys the default logger singleton instance.
levelEnabled
static inline noexcept
static inline bool levelEnabled(Level level) noexceptDefined in src/base/include/icy/logger.h:204
Returns true if a message at the given level could be accepted by any existing channel. Cheap (single relaxed atomic load) so the logging macros can skip argument formatting entirely when the level is filtered out. Conservative: never filters a deliverable message, but raising a channel's level does not raise the filter back.
lowerLevelFilter
static inline noexcept
static inline void lowerLevelFilter(Level level) noexceptDefined in src/base/include/icy/logger.h:213
Lowers the global level filter so messages at level and above pass [levelEnabled()](#levelenabled). Called by [LogChannel](icy-LogChannel.html#logchannel) on construction and setLevel().
Protected Attributes
| Return | Name | Description |
|---|---|---|
std::mutex | _mutex | |
LogChannelMap | _channels | |
LogChannel * | _defaultChannel | |
std::unique_ptr< LogWriter > | _writer |
_mutex
std::mutex _mutexDefined in src/base/include/icy/logger.h:235
_channels
LogChannelMap _channelsDefined in src/base/include/icy/logger.h:236
_defaultChannel
LogChannel * _defaultChannelDefined in src/base/include/icy/logger.h:237
_writer
std::unique_ptr< LogWriter > _writerDefined in src/base/include/icy/logger.h:238
Protected Methods
Logger
Logger(const Logger &) = deleteDefined in src/base/include/icy/logger.h:225
NonCopyable and NonMovable.
Logger
Logger(Logger &&) = deleteDefined in src/base/include/icy/logger.h:227
Deleted constructor.
