mirror of
https://github.com/KevinMidboe/delugeClient.git
synced 2025-10-29 12:00:13 +00:00
43 lines
1.0 KiB
Python
43 lines
1.0 KiB
Python
#!/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('utf-8')
|
|
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
|