Properly fromats console logs

This commit is contained in:
Sergi Delgado Segura
2019-12-16 19:44:50 +01:00
parent 77b191dde2
commit a9df67d787
3 changed files with 20 additions and 9 deletions

View File

@@ -28,6 +28,6 @@ c_logger.setLevel(logging.INFO)
ch = logging.StreamHandler() ch = logging.StreamHandler()
ch.setLevel(logging.INFO) ch.setLevel(logging.INFO)
ch_formatter = logging.Formatter("%(asctime)s %(message)s", "%Y-%m-%d %H:%M:%S") ch_formatter = logging.Formatter("%(asctime)s %(message)s.", "%Y-%m-%d %H:%M:%S")
ch.setFormatter(ch_formatter) ch.setFormatter(ch_formatter)
c_logger.addHandler(ch) c_logger.addHandler(ch)

View File

@@ -1,5 +1,5 @@
import time
import json import json
from datetime import datetime
from pisa import f_logger, c_logger from pisa import f_logger, c_logger
@@ -7,10 +7,10 @@ from pisa import f_logger, c_logger
class _StructuredMessage: class _StructuredMessage:
def __init__(self, message, **kwargs): def __init__(self, message, **kwargs):
self.message = message self.message = message
self.time = time.asctime() self.time = datetime.now().strftime("%d/%m/%Y %H:%M:%S")
self.kwargs = kwargs self.kwargs = kwargs
def __str__(self): def to_dict(self):
return {**self.kwargs, "message": self.message, "time": self.time} return {**self.kwargs, "message": self.message, "time": self.time}
@@ -26,13 +26,24 @@ class Logger:
self.actor = actor self.actor = actor
def _add_prefix(self, msg): def _add_prefix(self, msg):
return msg if self.actor is None else "[{}] {}".format(self.actor, msg) return msg if self.actor is None else "[{}]: {}".format(self.actor, msg)
def _create_console_message(self, msg, **kwargs): def _create_console_message(self, msg, **kwargs):
return _StructuredMessage(self._add_prefix(msg), actor=self.actor, **kwargs).message s_message = _StructuredMessage(self._add_prefix(msg), **kwargs).to_dict()
message = "{} {}".format(s_message["time"], s_message["message"])
def _create_file_message(self, msg, **kwargs): # s_message will always have at least two items (message and time).
return json.dumps(_StructuredMessage(msg, actor=self.actor, **kwargs).__str__()) if len(s_message) > 2:
params = "".join("{}={}, ".format(k, v) for k, v in s_message.items() if k not in ["message", "time"])
# Remove the extra 2 characters (space and comma) and add all data to the final message.
message += " ({})".format(params[:-2])
return message
@staticmethod
def _create_file_message(msg, **kwargs):
return json.dumps(_StructuredMessage(msg, **kwargs).to_dict())
def info(self, msg, **kwargs): def info(self, msg, **kwargs):
""" """

View File

@@ -22,6 +22,6 @@ c_logger.setLevel(logging.INFO)
ch = logging.StreamHandler() ch = logging.StreamHandler()
ch.setLevel(logging.INFO) ch.setLevel(logging.INFO)
ch_formatter = logging.Formatter("%(asctime)s %(message)s", "%Y-%m-%d %H:%M:%S") ch_formatter = logging.Formatter("%(message)s.", "%Y-%m-%d %H:%M:%S")
ch.setFormatter(ch_formatter) ch.setFormatter(ch_formatter)
c_logger.addHandler(ch) c_logger.addHandler(ch)