mirror of
https://github.com/KevinMidboe/delugeClient.git
synced 2025-10-29 12:00:13 +00:00
Utils script for coloring log based on logger status filter and convert function for converting byte dict to a dict of strings.
This commit is contained in:
42
utils.py
Normal file
42
utils.py
Normal file
@@ -0,0 +1,42 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
# @Author: kevinmidboe
|
||||
# @Date: 2018-04-17 19:55:38
|
||||
# @Last Modified by: KevinMidboe
|
||||
# @Last Modified time: 2018-05-04 00:04:25
|
||||
|
||||
import logging
|
||||
import colored
|
||||
import json
|
||||
from pprint import pprint
|
||||
|
||||
from colored import stylize
|
||||
|
||||
__all__ = ('ColorizeFilter', )
|
||||
|
||||
class ColorizeFilter(logging.Filter):
|
||||
"""
|
||||
Class for setting specific colors to levels of severity for log output
|
||||
"""
|
||||
color_by_level = {
|
||||
10: 'chartreuse_3b',
|
||||
20: 'white',
|
||||
30: 'orange_1',
|
||||
40: 'red'
|
||||
}
|
||||
|
||||
logger = logging.getLogger('deluge_cli')
|
||||
|
||||
def filter(self, record):
|
||||
record.raw_msg = record.msg
|
||||
color = self.color_by_level.get(record.levelno)
|
||||
if color:
|
||||
record.msg = stylize(record.msg, colored.fg(color))
|
||||
return True
|
||||
|
||||
def convert(data):
|
||||
if isinstance(data, bytes): return data.decode('ascii')
|
||||
if isinstance(data, dict): return dict(map(convert, data.items()))
|
||||
if isinstance(data, tuple): return map(convert, data)
|
||||
json_data = json.dumps(data)
|
||||
return json_data
|
||||
Reference in New Issue
Block a user