ISEPOS-2280 Added base loggers scripts #1
@ -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';
|
||||
asia marked this conversation as resolved
Outdated
|
||||
end
|
||||
this.fid = fopen(logFileName, 'a');
|
||||
if this.fid == -1
|
||||
error('Failed to open log file');
|
||||
end
|
||||
|
@ -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
|
||||
|
@ -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,
|
||||
asia
commented
I think the name was changed to 'APP_LOG_FILE' I think the name was changed to 'APP_LOG_FILE'
|
||||
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:
|
||||
asia
commented
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')
|
||||
asia
commented
Maybe just put here some placeholder meaning that this is a code that may produce an error Maybe just put here some placeholder meaning that this is a code that may produce an error
ymlesni
commented
Ok, I will do the same for Matlab and Octave versions. Ok, I will do the same for Matlab and Octave versions.
|
||||
|
||||
Notes:
|
||||
asia
commented
We have We have `except Exception as e` but the `e` is not used anywhere... is this correct?
h.siejkowski
commented
Maybe it is good to use here the Maybe it is good to use here the `logger.exception()` ([doc](https://docs.python.org/3/library/logging.html#logging.Logger.exception)) method as a showcase.
ymlesni
commented
`e` could be used to process exception further, but it is not necessary for example, I will remove it.
Would adding `logger.exception()` as a additional option be a good idea (to still showcase how to log exception at chosen log level)? For now I will change to `logger.exception()`.
|
||||
------
|
||||
- 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)
|
||||
|
Can we use a different name? Something that we would consider a log file at first glance ('fallbackPath' is something I wouldn't) - if we don't want to make it too simple, to avoid name collision with other things, maybe e.g. base-app-log.log or base-logger-log.log or something like that