59 lines
2.2 KiB
Python
Executable File
59 lines
2.2 KiB
Python
Executable File
# -*-mode: python; py-indent-offset: 2; indent-tabs-mode: nil; coding: utf-8-unix -*-
|
|
|
|
import sys
|
|
import logging
|
|
|
|
try:
|
|
# if 'COLOREDLOGS_LEVEL_STYLES' not in os.environ:
|
|
# os.environ['COLOREDLOGS_LEVEL_STYLES'] = 'spam=22;debug=28;verbose=34;notice=220;warning=202;success=118,bold;error=124;critical=background=red'
|
|
# https://pypi.org/project/coloredlogs/
|
|
import coloredlogs
|
|
except ImportError:
|
|
coloredlogs = False
|
|
|
|
def vsetup_logging(theLOG, log_level, logfile='', stream=sys.stdout) -> None:
|
|
global LOG
|
|
LOG = theLOG
|
|
add = True
|
|
|
|
logging._defaultFormatter = logging.Formatter(datefmt='%m-%d %H:%M:%S')
|
|
logging._defaultFormatter.default_time_format = '%m-%d %H:%M:%S'
|
|
logging._defaultFormatter.default_msec_format = ''
|
|
|
|
if logfile:
|
|
add = logfile.startswith('+')
|
|
sub = logfile.startswith('-')
|
|
if add or sub:
|
|
logfile = logfile[1:]
|
|
kwargs['filename'] = logfile
|
|
|
|
if coloredlogs:
|
|
coloredlogs.DEFAULT_LEVEL_STYLES['info']=dict(color='white',bold=True)
|
|
coloredlogs.DEFAULT_LEVEL_STYLES['debug']=dict(color='cyan')
|
|
coloredlogs.DEFAULT_LEVEL_STYLES['warn']=dict(color='yellow',bold=True)
|
|
coloredlogs.DEFAULT_LEVEL_STYLES['error']=dict(color='red',bold=True)
|
|
coloredlogs.DEFAULT_FIELD_STYLES['levelname=']=dict(color='green', bold=True),
|
|
# https://pypi.org/project/coloredlogs/
|
|
aKw = dict(level=log_level,
|
|
logger=LOG,
|
|
stream=stream,
|
|
fmt='%(levelname)s %(message)s',
|
|
isatty=True,
|
|
milliseconds=False,
|
|
)
|
|
coloredlogs.install(**aKw)
|
|
if logfile:
|
|
oHandler = logging.FileHandler(logfile)
|
|
LOG.addHandler(oHandler)
|
|
LOG.debug(f"Setting coloured log_level to {log_level}")
|
|
else:
|
|
kwargs = dict(level=log_level,
|
|
force=True,
|
|
format='%(levelname)s %(message)s')
|
|
logging.basicConfig(**kwargs)
|
|
if add and logfile:
|
|
oHandler = logging.StreamHandler(stream)
|
|
LOG.addHandler(oHandler)
|
|
LOG.debug(f"SSetting log_level to {log_level}")
|
|
|