ISEPOS-2280 Added base loggers scripts #1

Open
ymlesni wants to merge 8 commits from ymlesni/shared-snippets:feature/ISEPOS-2280-mechanizm-raportowania-informacji-z-aplikacji-do-pliku-z-logami into main
3 changed files with 22 additions and 11 deletions
Showing only changes of commit 13e4fa808f - Show all commits

View File

@ -63,7 +63,11 @@ classdef base_logger < handle
methods(Access=private)
function this = base_logger()
this.fid = fopen(getenv("APP_LOG_FILE"), 'a');
logFileName = getenv("APP_LOG_FILE");
if isempty(logFileName)
logFileName = 'fallbackPathApplication.log';
end
this.fid = fopen(logFileName, 'a');
if this.fid == -1
error('Failed to open log file');
end

View File

@ -63,7 +63,11 @@ classdef base_logger < handle
methods
function this = base_logger()
this.fid = fopen(getenv("APP_LOG_FILE"), 'a');
logFileName = getenv("APP_LOG_FILE");
if isempty(logFileName)
logFileName = 'fallbackPathApplication.log';
end
this.fid = fopen(logFileName, 'a');
if this.fid == -1
error('Failed to open log file');
end

View File

@ -11,8 +11,10 @@ def getDefaultLogger(name):
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
'APP_LOG_FILE' environment variable. It uses the 'INFO' level as the default
logging level and writes log entries in the following format:
'APP_LOG_FILE' environment variable. If the environment variable is not set,
the logger will write to the file 'fallbackPathApplication.log' in the current
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'
@ -31,12 +33,8 @@ def getDefaultLogger(name):
logger : logging.Logger
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'
environment variable.
Raises:
-------
KeyError:
If the 'APP_LOG_FILE' environment variable is not set.
environment variable, or to 'fallbackPathApplication.log' if the environment
variable is not set.
Example:
Review

Here, again, the name of the variable should be updated. But I thought also that instead of throwing an error, we might use some default file name, to allow users to run the app also outside of the platform. But, I would set the default log file name to something different than "application.log", so that we know that we could notice if something is wrong with setting the environment variable.

Here, again, the name of the variable should be updated. But I thought also that instead of throwing an error, we might use some default file name, to allow users to run the app also outside of the platform. But, I would set the default log file name to something different than "application.log", so that we know that we could notice if something is wrong with setting the environment variable.
--------
@ -47,10 +45,15 @@ def getDefaultLogger(name):
except Exception:
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 'fallbackPathApplication.log'.
"""
logger = logging.getLogger(name)
if not logger.hasHandlers():
file_handler = logging.FileHandler(os.environ['APP_LOG_FILE'], mode='a')
file_handler = logging.FileHandler(os.environ.get('APP_LOG_FILE', 'fallbackPathApplication.log'), mode='a')
formatter = logging.Formatter('%(asctime)s,%(msecs)d %(levelname)s %(name)s %(message)s')
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)