aboutsummaryrefslogtreecommitdiffstats
path: root/app/utils/logging/full_logger.py
diff options
context:
space:
mode:
Diffstat (limited to 'app/utils/logging/full_logger.py')
-rw-r--r--app/utils/logging/full_logger.py44
1 files changed, 36 insertions, 8 deletions
diff --git a/app/utils/logging/full_logger.py b/app/utils/logging/full_logger.py
index 411eceb..f6fe5fa 100644
--- a/app/utils/logging/full_logger.py
+++ b/app/utils/logging/full_logger.py
@@ -10,34 +10,62 @@
import logging
import logging.handlers
+from utils.origins import Origin
from utils.logging.logger import Logger
from utils.logging.mongo_logging_handler import MongoLoggingHandler
class FullLogger(Logger):
- def __init__(self, env: str = None, log_file: str = None,
- level: str = Logger.default_level):
+ def __init__(self, env: str = None, origin: Origin = None,
+ log_file: str = None, level: str = Logger.default_level):
super().__init__(logger_name="{}-Full".format(self.PROJECT_NAME),
level=level)
+ self.env = env
+ self.origin = origin
# Console handler
self.add_handler(logging.StreamHandler())
# Message handler
- self.add_handler(MongoLoggingHandler(env, self.level))
+ self.add_handler(MongoLoggingHandler(env=env, origin=origin,
+ level=self.level))
# File handler
if log_file:
self.add_handler(logging.handlers.WatchedFileHandler(log_file))
+ def _get_message_handler(self):
+ defined_handlers = [h for h in self.log.handlers
+ if isinstance(h, MongoLoggingHandler)]
+ return defined_handlers[0] if defined_handlers else None
+
# Make sure we update MessageHandler with new env
def set_env(self, env):
- super().set_env(env)
+ self.env = env
- defined_handler = [h for h in self.log.handlers
- if isinstance(h, MongoLoggingHandler)]
- if defined_handler:
- defined_handler[0].env = env
+ handler = self._get_message_handler()
+ if handler:
+ handler.env = env
else:
self.add_handler(MongoLoggingHandler(env, self.level))
+
+ def set_origin(self, origin: Origin):
+ self.origin = origin
+
+ handler = self._get_message_handler()
+ if handler:
+ handler.origin = origin
+ else:
+ self.add_handler(MongoLoggingHandler(env=self.env,
+ level=self.level,
+ origin=origin))
+
+ def setup(self, **kwargs):
+ env = kwargs.get('env')
+ if env and self.env != env:
+ self.set_env(env)
+
+ origin = kwargs.get('origin')
+ if origin and self.origin != origin:
+ self.set_origin(origin) \ No newline at end of file