diff options
Diffstat (limited to 'src/log.py')
-rw-r--r-- | src/log.py | 40 |
1 files changed, 33 insertions, 7 deletions
@@ -1,5 +1,8 @@ import logging import logging.config +import os + +from src.utils.net import getifaddr DEFAULT_LOGGING_LINUX = { 'version': 1, @@ -15,25 +18,34 @@ DEFAULT_LOGGING_LINUX = { 'format': '[{levelname}] - {message}', 'style': '{', }, + 'formatter.syslogtime': { + '()': 'logging.Formatter', + 'datefmt': '%Y-%m-%d %H:%M:%S', + 'format': '({asctime}) ogClient: [{levelname}] - {message}', + 'style': '{', + }, }, 'handlers': { 'console': { - 'level': 'INFO', 'class': 'logging.StreamHandler', 'formatter': 'formatter.console', 'stream': 'ext://sys.stdout', }, 'syslog': { - 'level': 'DEBUG', 'class': 'logging.handlers.SysLogHandler', 'formatter': 'formatter.syslog', 'address': '/dev/log', }, + 'samba': { + 'class': 'logging.FileHandler', + 'formatter': 'formatter.syslogtime', + 'filename': f'/opt/opengnsys/log/{getifaddr(os.getenv("DEVICE"))}.log', + }, }, 'loggers': { '': { 'handlers': ['syslog', 'console'], - 'level': 'DEBUG', + 'level': 'INFO', }, } } @@ -64,9 +76,23 @@ DEFAULT_LOGGING_WIN = { } } -def configure_logging(mode): +def configure_logging(mode, level): + """ + Receives a ogClient operating mode. + + Configures the default logger according to the operating mode. + + For example, in the case of running live mode it will activate + logging to the expected samba shared log file ({ip}.txt.log). + """ if mode == 'windows': - DEFAULT_LOGGING = DEFAULT_LOGGING_WIN + logconfig = DEFAULT_LOGGING_WIN else: - DEFAULT_LOGGING = DEFAULT_LOGGING_LINUX - logging.config.dictConfig(DEFAULT_LOGGING) + logconfig = DEFAULT_LOGGING_LINUX + + if mode == 'live': + logconfig['loggers']['']['handlers'].append('samba') + + logconfig['loggers']['']['level'] = level + + logging.config.dictConfig(logconfig) |