mirror of
https://github.com/ansible/awx.git
synced 2026-05-09 02:17:37 -02:30
Fix environment-specific rough edges of logging setup (#15193)
This commit is contained in:
@@ -4,6 +4,7 @@
|
|||||||
# Python
|
# Python
|
||||||
import base64
|
import base64
|
||||||
import logging
|
import logging
|
||||||
|
import logging.handlers
|
||||||
import sys
|
import sys
|
||||||
import traceback
|
import traceback
|
||||||
import os
|
import os
|
||||||
@@ -27,6 +28,9 @@ from opentelemetry.sdk._logs.export import BatchLogRecordProcessor
|
|||||||
from opentelemetry.sdk.resources import Resource
|
from opentelemetry.sdk.resources import Resource
|
||||||
|
|
||||||
|
|
||||||
|
__all__ = ['RSysLogHandler', 'SpecialInventoryHandler', 'ColorHandler']
|
||||||
|
|
||||||
|
|
||||||
class RSysLogHandler(logging.handlers.SysLogHandler):
|
class RSysLogHandler(logging.handlers.SysLogHandler):
|
||||||
append_nul = False
|
append_nul = False
|
||||||
|
|
||||||
@@ -109,39 +113,35 @@ class SpecialInventoryHandler(logging.Handler):
|
|||||||
|
|
||||||
|
|
||||||
if settings.COLOR_LOGS is True:
|
if settings.COLOR_LOGS is True:
|
||||||
try:
|
from logutils.colorize import ColorizingStreamHandler
|
||||||
from logutils.colorize import ColorizingStreamHandler
|
import colorama
|
||||||
import colorama
|
|
||||||
|
|
||||||
colorama.deinit()
|
colorama.deinit()
|
||||||
colorama.init(wrap=False, convert=False, strip=False)
|
colorama.init(wrap=False, convert=False, strip=False)
|
||||||
|
|
||||||
class ColorHandler(ColorizingStreamHandler):
|
class ColorHandler(ColorizingStreamHandler):
|
||||||
def colorize(self, line, record):
|
def colorize(self, line, record):
|
||||||
# comment out this method if you don't like the job_lifecycle
|
# comment out this method if you don't like the job_lifecycle
|
||||||
# logs rendered with cyan text
|
# logs rendered with cyan text
|
||||||
previous_level_map = self.level_map.copy()
|
previous_level_map = self.level_map.copy()
|
||||||
if record.name == "awx.analytics.job_lifecycle":
|
if record.name == "awx.analytics.job_lifecycle":
|
||||||
self.level_map[logging.INFO] = (None, 'cyan', True)
|
self.level_map[logging.INFO] = (None, 'cyan', True)
|
||||||
msg = super(ColorHandler, self).colorize(line, record)
|
msg = super(ColorHandler, self).colorize(line, record)
|
||||||
self.level_map = previous_level_map
|
self.level_map = previous_level_map
|
||||||
return msg
|
return msg
|
||||||
|
|
||||||
def format(self, record):
|
def format(self, record):
|
||||||
message = logging.StreamHandler.format(self, record)
|
message = logging.StreamHandler.format(self, record)
|
||||||
return '\n'.join([self.colorize(line, record) for line in message.splitlines()])
|
return '\n'.join([self.colorize(line, record) for line in message.splitlines()])
|
||||||
|
|
||||||
level_map = {
|
level_map = {
|
||||||
logging.DEBUG: (None, 'green', True),
|
logging.DEBUG: (None, 'green', True),
|
||||||
logging.INFO: (None, None, True),
|
logging.INFO: (None, None, True),
|
||||||
logging.WARNING: (None, 'yellow', True),
|
logging.WARNING: (None, 'yellow', True),
|
||||||
logging.ERROR: (None, 'red', True),
|
logging.ERROR: (None, 'red', True),
|
||||||
logging.CRITICAL: (None, 'red', True),
|
logging.CRITICAL: (None, 'red', True),
|
||||||
}
|
}
|
||||||
|
|
||||||
except ImportError:
|
|
||||||
# logutils is only used for colored logs in the dev environment
|
|
||||||
pass
|
|
||||||
else:
|
else:
|
||||||
ColorHandler = logging.StreamHandler
|
ColorHandler = logging.StreamHandler
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user