Add logging_json

Output odoo logs as json
This commit is contained in:
Guewen Baconnier
2016-11-02 10:10:05 +01:00
parent 46231b3365
commit ec1f3fc61a
6 changed files with 73 additions and 0 deletions
+29
View File
@@ -0,0 +1,29 @@
# -*- coding: utf-8 -*-
import logging
import os
import threading
from distutils.util import strtobool
from pythonjsonlogger import jsonlogger
def is_true(strval):
return bool(strtobool(strval or '0'.lower()))
class OdooJsonFormatter(jsonlogger.JsonFormatter):
def add_fields(self, log_record, record, message_dict):
record.pid = os.getpid()
record.dbname = getattr(threading.currentThread(), 'dbname', '?')
_super = super(OdooJsonFormatter, self)
return _super.add_fields(log_record, record, message_dict)
if is_true(os.environ.get('ODOO_LOGGING_JSON')):
format = ('%(asctime)s %(pid)s %(levelname)s'
'%(dbname)s %(name)s: %(message)s')
formatter = OdooJsonFormatter(format)
logging.getLogger().handlers[0].formatter = formatter