Fixed utf8 bug in logging and added curry decorator

This commit is contained in:
aewens 2019-06-06 02:21:34 -04:00
parent 92b1cdb0d3
commit 02af7e58a3
3 changed files with 11 additions and 7 deletions

View File

@ -1,5 +1,6 @@
from collections import defaultdict
from functools import wraps
from importlib import import_module
def infinitedict():
d = lambda: defaultdict(d)
@ -55,3 +56,5 @@ def curry(func, argc=None):
return func(*(args + c_args))
return curry(curried, argc - len(args))
return wrapper_curry

View File

@ -15,8 +15,8 @@ def get_level(level):
def get_formatter(formatter, date_format):
if formatter is None:
formatter = "%(asctime)s - %(name)s - %(threadName)s"
formatter = f"{formatter} - %(levelname)s - %(message)s"
formatter = u"%(asctime)s - %(name)s - %(threadName)s"
formatter = formatter + u" - %(levelname)s - %(message)s"
if date_format is None:
date_format = "%Y-%m-%d %H:%M:%S"
return Formatter(formatter)
@ -28,9 +28,10 @@ class Stream(StreamHandler):
self.setFormatter(get_formatter(formatter, date_format))
class Rotated(TimedRotatingFileHandler):
def __init__(self, filename, when, interval, backupCount,
def __init__(self, filename, when, interval, backupCount,
level=None, formatter=None, date_format=None, **kwargs):
super().__init__(filename, when, interval, backupCount, **kwargs)
super().__init__(filename, when, interval, backupCount, encoding="utf8",
**kwargs)
self.setLevel(get_level(level))
self.setFormatter(get_formatter(formatter, date_format))
@ -62,8 +63,8 @@ class Logger:
rotated_level = rotated.get("level", None)
rotated_formatter = rotated.get("formatter", None)
rotated_date_format = rotated.get("date_format", None)
rotated_args = (rotated_filename, rotated_when, rotated_interval,
rotated_backup_count, rotated_level, rotated_formatter,
rotated_args = (rotated_filename, rotated_when, rotated_interval,
rotated_backup_count, rotated_level, rotated_formatter,
rotated_date_format)
rotated_handler = Rotated(*rotated_args)
handlers.append(rotated_handler)

View File

@ -2,4 +2,4 @@ pytest
python-gnupg
cryptography
flask
websockets
websockets