1 Commits

3 changed files with 32 additions and 49 deletions

View File

@@ -10,9 +10,6 @@
% It follows the Singleton pattern to ensure that only one instance of the logger % It follows the Singleton pattern to ensure that only one instance of the logger
% exists throughout the application. % exists throughout the application.
% %
% The log file is specified by the environment variable 'APP_LOG_FILE'. If
% the variable is not set, a default file 'base-logger-log.log' is used.
%
% Properties: % Properties:
% fid - (private) The file identifier for the log file. This is used to write logs. % fid - (private) The file identifier for the log file. This is used to write logs.
% %
@@ -20,20 +17,20 @@
% %
% getInstance() - Retrieves the singleton instance of the logger. % getInstance() - Retrieves the singleton instance of the logger.
% %
% trace(varargin) - Logs one or more messages with TRACE level. % trace(message) - Logs a message with TRACE level.
% @param varargin The messages to log. Can be strings, numbers, or MException objects. % @param message The message to log.
% %
% debug(varargin) - Logs one or more messages with DEBUG level. % debug(message) - Logs a message with DEBUG level.
% @param varargin The messages to log. Can be strings, numbers, or MException objects. % @param message The message to log.
% %
% info(varargin) - Logs one or more messages with INFO level. % info(message) - Logs a message with INFO level.
% @param varargin The messages to log. Can be strings, numbers, or MException objects. % @param message The message to log.
% %
% warning(varargin) - Logs one or more messages with WARNING level. % warning(message) - Logs a message with WARNING level.
% @param varargin The messages to log. Can be strings, numbers, or MException objects. % @param message The message to log.
% %
% error(varargin) - Logs one or more messages with ERROR level. % error(message) - Logs a message with ERROR level.
% @param varargin The messages to log. Can be strings, numbers, or MException objects. % @param message The message to log.
% %
% delete() - Destructor method that closes the file identifier when the logger is deleted. % delete() - Destructor method that closes the file identifier when the logger is deleted.
% %
@@ -66,11 +63,7 @@ classdef base_logger < handle
methods(Access=private) methods(Access=private)
function this = base_logger() function this = base_logger()
logFileName = getenv("APP_LOG_FILE"); this.fid = fopen(getenv("APP_LOG_FILE"), 'a');
if isempty(logFileName)
logFileName = 'base-logger-log.log';
end
this.fid = fopen(logFileName, 'a');
if this.fid == -1 if this.fid == -1
error('Failed to open log file'); error('Failed to open log file');
end end

View File

@@ -10,9 +10,6 @@
% It follows the Singleton pattern to ensure that only one instance of the logger % It follows the Singleton pattern to ensure that only one instance of the logger
% exists throughout the application. % exists throughout the application.
% %
% The log file is specified by the environment variable 'APP_LOG_FILE'. If
% the variable is not set, a default file 'base-logger-log.log' is used.
%
% Properties: % Properties:
% fid - (private) The file identifier for the log file. This is used to write logs. % fid - (private) The file identifier for the log file. This is used to write logs.
% %
@@ -20,20 +17,20 @@
% %
% getInstance() - Retrieves the singleton instance of the logger. % getInstance() - Retrieves the singleton instance of the logger.
% %
% trace(varargin) - Logs one or more messages with TRACE level. % trace(message) - Logs a message with TRACE level.
% @param varargin The messages to log. Can be strings, numbers, or MException objects. % @param message The message to log.
% %
% debug(varargin) - Logs one or more messages with DEBUG level. % debug(message) - Logs a message with DEBUG level.
% @param varargin The messages to log. Can be strings, numbers, or MException objects. % @param message The message to log.
% %
% info(varargin) - Logs one or more messages with INFO level. % info(message) - Logs a message with INFO level.
% @param varargin The messages to log. Can be strings, numbers, or MException objects. % @param message The message to log.
% %
% warning(varargin) - Logs one or more messages with WARNING level. % warning(message) - Logs a message with WARNING level.
% @param varargin The messages to log. Can be strings, numbers, or MException objects. % @param message The message to log.
% %
% error(varargin) - Logs one or more messages with ERROR level. % error(message) - Logs a message with ERROR level.
% @param varargin The messages to log. Can be strings, numbers, or MException objects. % @param message The message to log.
% %
% delete() - Destructor method that closes the file identifier when the logger is deleted. % delete() - Destructor method that closes the file identifier when the logger is deleted.
% %
@@ -66,11 +63,7 @@ classdef base_logger < handle
methods methods
function this = base_logger() function this = base_logger()
logFileName = getenv("APP_LOG_FILE"); this.fid = fopen(getenv("APP_LOG_FILE"), 'a');
if isempty(logFileName)
logFileName = 'base-logger-log.log';
end
this.fid = fopen(logFileName, 'a');
if this.fid == -1 if this.fid == -1
error('Failed to open log file'); error('Failed to open log file');
end end

View File

@@ -11,10 +11,8 @@ def getDefaultLogger(name):
Retrieves or creates a logger with the specified name and sets it up with a file handler. Retrieves or creates a logger with the specified name and sets it up with a file handler.
The logger is configured to write log messages to the file path specified by the The logger is configured to write log messages to the file path specified by the
'APP_LOG_FILE' environment variable. If the environment variable is not set, 'DEFAULT_LOG_PATH' environment variable. It uses the 'INFO' level as the default
the logger will write to the file 'base-logger-log.log' in the current logging level and writes log entries in the following format:
working directory. The logger uses the 'INFO' level as the default logging level
and writes log entries in the following format:
'YYYY-MM-DD HH:MM:SS,ms LEVEL logger_name message' 'YYYY-MM-DD HH:MM:SS,ms LEVEL logger_name message'
@@ -32,9 +30,13 @@ def getDefaultLogger(name):
-------- --------
logger : logging.Logger logger : logging.Logger
A logger instance with the specified name. The logger is configured with a A logger instance with the specified name. The logger is configured with a
file handler that writes to the file specified by the 'APP_LOG_FILE' file handler that writes to the file specified by the 'DEFAULT_LOG_PATH'
environment variable, or to 'base-logger-log.log' if the environment environment variable.
variable is not set.
Raises:
-------
KeyError:
If the 'DEFAULT_LOG_PATH' environment variable is not set.
Example: Example:
-------- --------
@@ -45,15 +47,10 @@ def getDefaultLogger(name):
except Exception: except Exception:
logger.exception('An error occurred') logger.exception('An error occurred')
Notes:
------
- The 'APP_LOG_FILE' environment variable should specify the full path to the log file.
- If 'APP_LOG_FILE' is not set, logs will be written to 'base-logger-log.log'.
""" """
logger = logging.getLogger(name) logger = logging.getLogger(name)
if not logger.hasHandlers(): if not logger.hasHandlers():
file_handler = logging.FileHandler(os.environ.get('APP_LOG_FILE', 'base-logger-log.log'), mode='a') file_handler = logging.FileHandler(os.environ['APP_LOG_FILE'], mode='a')
formatter = logging.Formatter('%(asctime)s,%(msecs)d %(levelname)s %(name)s %(message)s') formatter = logging.Formatter('%(asctime)s,%(msecs)d %(levelname)s %(name)s %(message)s')
file_handler.setFormatter(formatter) file_handler.setFormatter(formatter)
logger.addHandler(file_handler) logger.addHandler(file_handler)