Logy v1.2.1
logger.h File Reference

Message logger. More...

#include "logy/common.h"
#include <stdarg.h>
#include <stdbool.h>

Macros

#define SOLO_LOG_FILE_NAME   "log.txt"
 Log file name without rotation.

Typedefs

typedef struct Logger_T Logger_T
 Logger structure.
typedef Logger_TLogger
 Logger instance.

Functions

LogyResult createLogger (const char *directoryPath, LogLevel level, bool logToStdout, double rotationTime, bool isAppDataDirectory, Logger *logger)
 Creates a new logger instance.
void destroyLogger (Logger logger)
 Destroys logger instance.
const char * getLoggerDirectoryPath (Logger logger)
 Returns logger directory path string. (MT-Safe).
const char * getLoggerFilePath (Logger logger)
 Returns logger file path string. (MT-Safe).
double getLoggerRotationTime (Logger logger)
 Returns current logger rotation delay time in seconds. (MT-Safe).
LogLevel getLoggerLevel (Logger logger)
 Returns current logger logging level. (MT-Safe).
void setLoggerLevel (Logger logger, LogLevel level)
 Set logger logging level. (MT-Safe).
bool getLoggerLogToStdout (Logger logger)
 Returns current logger log to stdout state. (MT-Safe).
void setLoggerLogToStdout (Logger logger, bool logToStdout)
 Sets log messages to stdout. (MT-Safe).
void logVaMessage (Logger logger, LogLevel level, const char *fmt, va_list args)
 Logs message to the log. (MT-Safe).
void logMessage (Logger logger, LogLevel level, const char *fmt,...)
 Logs message to the log. (MT-Safe).

Detailed Description

Message logger.

The logger is used to record or log messages generated by a software application during its execution. Logging is a crucial aspect of software development, as it provides a way to capture information about the program's behavior, errors, warnings, and other events. The primary purposes of using a logger in programming include debugging, monitoring, and analyzing the application's runtime behavior.

Function Documentation

◆ createLogger()

LogyResult createLogger ( const char * directoryPath,
LogLevel level,
bool logToStdout,
double rotationTime,
bool isAppDataDirectory,
Logger * logger )

Creates a new logger instance.

Opens a new file stream to write logging messages. Log rotation is a process used to manage log files by periodically archiving them to prevent from becoming too large and consuming excessive disk space.

Note
You should destroy created logger instance manually.
Parameters
[in]directoryPathlogs directory path string
levellogging level, inclusive
logToStdoutduplicate messages to the stdout
rotationTimelog rotation delay time or 0 (in seconds)
isAppDataDirectorywrite to app data directory
[out]loggerpointer to the logger instance
Returns
The LogyResult code and writes logger instance on success.
Return values
SUCCESS_LOGY_RESULTon success
FAILED_TO_ALLOCATE_LOGY_RESULTif out of memory
FAILED_TO_GET_DIRECTORY_LOGY_RESULTif failed to get data directory path
FAILED_TO_OPEN_FILE_LOGY_RESULTif failed to open file

◆ destroyLogger()

void destroyLogger ( Logger logger)

Destroys logger instance.

Parameters
loggerlogger instance or NULL

◆ getLoggerDirectoryPath()

const char * getLoggerDirectoryPath ( Logger logger)

Returns logger directory path string. (MT-Safe).

Parameters
loggerlogger instance

◆ getLoggerFilePath()

const char * getLoggerFilePath ( Logger logger)

Returns logger file path string. (MT-Safe).

Parameters
loggerlogger instance

◆ getLoggerRotationTime()

double getLoggerRotationTime ( Logger logger)

Returns current logger rotation delay time in seconds. (MT-Safe).

After the time expires, the current log file will be closed and compressed, a new file stream for the log file will be created.

Parameters
loggerlogger instance

◆ getLoggerLevel()

LogLevel getLoggerLevel ( Logger logger)

Returns current logger logging level. (MT-Safe).

Parameters
loggerlogger instance

◆ setLoggerLevel()

void setLoggerLevel ( Logger logger,
LogLevel level )

Set logger logging level. (MT-Safe).

Log only message <= log level.

Parameters
loggerlogger instance
levelmessage logging level

◆ getLoggerLogToStdout()

bool getLoggerLogToStdout ( Logger logger)

Returns current logger log to stdout state. (MT-Safe).

Parameters
loggerlogger instance

◆ setLoggerLogToStdout()

void setLoggerLogToStdout ( Logger logger,
bool logToStdout )

Sets log messages to stdout. (MT-Safe).

Is logger should duplicate messages to the stdout.

Parameters
loggerlogger instance
logToStdoutlogToStdout value

◆ logVaMessage()

void logVaMessage ( Logger logger,
LogLevel level,
const char * fmt,
va_list args )

Logs message to the log. (MT-Safe).

Parameters
loggerlogger instance
levelmessage logging level
[in]fmtformatted message
argsmessage arguments

◆ logMessage()

void logMessage ( Logger logger,
LogLevel level,
const char * fmt,
... )

Logs message to the log. (MT-Safe).

Parameters
loggerlogger instance
levelmessage logging level
[in]fmtformatted message
...message arguments