handle UnicodeDecodeError exceptions when json encoding log messages

This commit is contained in:
Alan Hamlett 2013-11-21 01:13:10 -08:00
parent 08135d5cd6
commit f4861009f8
2 changed files with 9 additions and 1 deletions

View File

@ -63,6 +63,9 @@ def parseConfigFile(configFile):
'verbose': False, 'verbose': False,
} }
if not os.path.isfile(configFile):
return configs
try: try:
with open(configFile) as fh: with open(configFile) as fh:
for line in fh: for line in fh:

View File

@ -25,7 +25,12 @@ class CustomEncoder(json.JSONEncoder):
if isinstance(obj, bytes): if isinstance(obj, bytes):
obj = bytes.decode(obj) obj = bytes.decode(obj)
return json.dumps(obj) return json.dumps(obj)
return super(CustomEncoder, self).default(obj) try:
encoded = super(CustomEncoder, self).default(obj)
except UnicodeDecodeError:
obj = obj.decode('utf-8', 'ignore')
encoded = super(CustomEncoder, self).default(obj)
return encoded
class JsonFormatter(logging.Formatter): class JsonFormatter(logging.Formatter):