summaryrefslogtreecommitdiffstats
path: root/src/log.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/log.py')
-rw-r--r--src/log.py40
1 files changed, 33 insertions, 7 deletions
diff --git a/src/log.py b/src/log.py
index 9d379eb..bf00c71 100644
--- a/src/log.py
+++ b/src/log.py
@@ -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)