Skip to content

Commit

Permalink
feat: Add colored log messages
Browse files Browse the repository at this point in the history
Log messages have different colors depending on the log level.
This makes it easier to identify warnings and errors.
  • Loading branch information
MoritzWeber0 committed Mar 18, 2024
1 parent bce139e commit 7b55819
Showing 1 changed file with 19 additions and 11 deletions.
30 changes: 19 additions & 11 deletions backend/capellacollab/core/logging/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,20 +20,28 @@


class CustomFormatter(logging.Formatter):
def __init__(self):
self._request_formatters = logging.Formatter(
'time="%(asctime)s" level=%(levelname)s function=%(funcName)s %(message)s'
)
self._default_formatter = logging.Formatter(
'time="%(asctime)s" level=%(levelname)s name=%(name)s function=%(funcName)s message="%(message)s"'
)
super().__init__()
_colors = {
logging.DEBUG: "\x1b[37;40m",
logging.INFO: "\x1b[34;40m",
logging.WARNING: "\x1b[93;40m",
logging.ERROR: "\x1b[31;40m",
logging.CRITICAL: "\x1b[31;40m",
"reset": "\x1b[0m",
}

def format(self, record):
log_format = 'time="%(asctime)s" level=%(levelname)s '
if record.name == "capellacollab.request":
return self._request_formatters.format(record)

return self._default_formatter.format(record)
log_format += "function=%(funcName)s %(message)s"
else:
log_format += (
'name=%(name)s function=%(funcName)s message="%(message)s"'
)

formatter = logging.Formatter(
self._colors[record.levelno] + log_format + self._colors["reset"]
)
return formatter.format(record)


class CustomTimedRotatingFileHandler(handlers.TimedRotatingFileHandler):
Expand Down

0 comments on commit 7b55819

Please sign in to comment.