Better adding of new log handlers

- __init__.py exports addHandler function for adding new handlers
- when --json flag is set we try disable all ch logs
This commit is contained in:
2022-11-24 00:15:35 +01:00
parent 2420d9e8c4
commit d546027df7
3 changed files with 18 additions and 15 deletions

View File

@@ -7,16 +7,17 @@ from os.path import dirname, join
path.append(dirname(__file__))
import logging
from utils import BASE_DIR, ColorizeFilter
from utils import BASE_DIR
def addHandler(handler):
# handler.setLevel(logging.INFO)
handler.setFormatter(formatter)
logger.addHandler(handler)
logger = logging.getLogger('deluge_cli')
logger.setLevel(logging.DEBUG)
fh = logging.FileHandler(join(BASE_DIR, 'deluge_cli.log'))
fh.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s| %(levelname)s | %(message)s')
formatter = logging.Formatter('%(asctime)s %(levelname)8s %(name)s | %(message)s')
fh.setFormatter(formatter)
logger.addHandler(fh)
logger.addFilter(ColorizeFilter())
addHandler(fh)

View File

@@ -11,13 +11,12 @@ from pprint import pprint
from deluge import Deluge
from utils import ColorizeFilter, BASE_DIR
from __version__ import __version__
from __init__ import addHandler
logger = logging.getLogger('deluge_cli')
ch = logging.StreamHandler()
ch.setLevel(logging.ERROR)
logger.addHandler(ch)
logger.addFilter(ColorizeFilter())
ch.addFilter(ColorizeFilter())
addHandler(ch)
logger = logging.getLogger('deluge_cli')
app = typer.Typer()
deluge = Deluge()
@@ -115,11 +114,14 @@ def version():
'''
print(__version__)
# Runs before any command
@app.callback()
def defaultOptions(debug: bool = typer.Option(False, '--debug', help='Set log level to debug'), info: bool = typer.Option(False, '--info', help='Set log level to info'), warning: bool = typer.Option(False, '--warning', help='Set log level to warning'), error: bool = typer.Option(False, '--error', help='Set log level to error')):
ch.setLevel(logging.WARNING)
ch.setLevel(logging.INFO)
if error == True:
if '--json' in sys.argv:
ch.setLevel(logging.CRITICAL)
elif error == True:
ch.setLevel(logging.ERROR)
elif warning == True:
ch.setLevel(logging.WARNING)

View File

@@ -60,7 +60,7 @@ class ColorizeFilter(logging.Filter):
Class for setting specific colors to levels of severity for log output
"""
color_by_level = {
10: 'chartreuse_3b',
10: 'cyan',
20: 'white',
30: 'orange_1',
40: 'red'