From 746b540af8845f495b8b19be5cf77f23a06fa6f2 Mon Sep 17 00:00:00 2001 From: Gavin D'souza Date: Wed, 27 May 2020 19:09:18 +0530 Subject: [PATCH] fix: Add Form Dict information only for frappe.log --- frappe/__init__.py | 2 +- frappe/app.py | 11 ++++++++++- frappe/utils/error.py | 2 +- frappe/utils/logger.py | 28 +++++++--------------------- 4 files changed, 19 insertions(+), 24 deletions(-) diff --git a/frappe/__init__.py b/frappe/__init__.py index 56017e2bc3..d958f1ad86 100644 --- a/frappe/__init__.py +++ b/frappe/__init__.py @@ -1559,7 +1559,7 @@ def get_doctype_app(doctype): loggers = {} log_level = None -def logger(module=None, with_more_info=True): +def logger(module=None, with_more_info=False): '''Returns a python logger that uses StreamHandler''' from frappe.utils.logger import get_logger return get_logger(module=module, with_more_info=with_more_info) diff --git a/frappe/app.py b/frappe/app.py index 41798b0bc4..5f9a22891f 100644 --- a/frappe/app.py +++ b/frappe/app.py @@ -96,6 +96,16 @@ def application(request): frappe.monitor.stop(response) frappe.recorder.dump() + frappe.logger("web").info({ + "site": get_site_name(request.host), + "remote_addr": request.remote_addr, + "base_url": request.base_url, + "full_path": request.full_path, + "method": request.method, + "scheme": request.scheme, + "http_status_code": response.status_code + }) + frappe.destroy() return response @@ -186,7 +196,6 @@ def handle_exception(e): frappe.local.login_manager.clear_cookies() if http_status_code >= 500: - frappe.logger().error('Request Error', exc_info=True) make_error_snapshot(e) if return_as_message: diff --git a/frappe/utils/error.py b/frappe/utils/error.py index bb83815d18..af8c0952e8 100644 --- a/frappe/utils/error.py +++ b/frappe/utils/error.py @@ -21,7 +21,7 @@ def make_error_snapshot(exception): if frappe.conf.disable_error_snapshot: return - logger = frappe.logger(with_more_info=False) + logger = frappe.logger(with_more_info=True) try: error_id = '{timestamp:s}-{ip:s}-{hash:s}'.format( diff --git a/frappe/utils/logger.py b/frappe/utils/logger.py index 5e202f87fb..89e3711b0f 100755 --- a/frappe/utils/logger.py +++ b/frappe/utils/logger.py @@ -15,17 +15,19 @@ import frappe default_log_level = logging.DEBUG site = getattr(frappe.local, 'site', None) -form_dict = getattr(frappe.local, 'form_dict', None) -def get_logger(module, with_more_info=True): +def get_logger(module, with_more_info=False): + global site if module in frappe.loggers: return frappe.loggers[module] if not module: module = "frappe" + with_more_info = True logfile = module + '.log' + site = getattr(frappe.local, 'site', None) LOG_FILENAME = os.path.join('..', 'logs', logfile) logger = logging.getLogger(module) @@ -54,25 +56,9 @@ def get_logger(module, with_more_info=True): class SiteContextFilter(logging.Filter): """This is a filter which injects request information (if available) into the log.""" def filter(self, record): - record.msg = get_more_info_for_log() + text_type(record.msg) - return True - -def get_more_info_for_log(): - '''Adds Site, Form Dict into log entry''' - more_info = [] - - if site: - more_info.append('Site: {0}'.format(site)) - - form_dict = getattr(frappe.local, 'form_dict', None) - if form_dict: - more_info.append('Form Dict: {0}'.format(frappe.as_json(form_dict))) - - if more_info: - # to append a \n - more_info = more_info + [''] - - return '\n'.join(more_info) + if "Form Dict" not in text_type(record.msg): + record.msg = text_type(record.msg) + "\nSite: {0}\nForm Dict: {1}".format(site, getattr(frappe.local, 'form_dict', None)) + return True def set_log_level(level): '''Use this method to set log level to something other than the default DEBUG'''