Bladeren bron

fix: Add Form Dict information only for frappe.log

version-14
Gavin D'souza 5 jaren geleden
bovenliggende
commit
746b540af8
4 gewijzigde bestanden met toevoegingen van 19 en 24 verwijderingen
  1. +1
    -1
      frappe/__init__.py
  2. +10
    -1
      frappe/app.py
  3. +1
    -1
      frappe/utils/error.py
  4. +7
    -21
      frappe/utils/logger.py

+ 1
- 1
frappe/__init__.py Bestand weergeven

@@ -1559,7 +1559,7 @@ def get_doctype_app(doctype):


loggers = {} loggers = {}
log_level = None 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''' '''Returns a python logger that uses StreamHandler'''
from frappe.utils.logger import get_logger from frappe.utils.logger import get_logger
return get_logger(module=module, with_more_info=with_more_info) return get_logger(module=module, with_more_info=with_more_info)


+ 10
- 1
frappe/app.py Bestand weergeven

@@ -96,6 +96,16 @@ def application(request):
frappe.monitor.stop(response) frappe.monitor.stop(response)
frappe.recorder.dump() 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() frappe.destroy()


return response return response
@@ -186,7 +196,6 @@ def handle_exception(e):
frappe.local.login_manager.clear_cookies() frappe.local.login_manager.clear_cookies()


if http_status_code >= 500: if http_status_code >= 500:
frappe.logger().error('Request Error', exc_info=True)
make_error_snapshot(e) make_error_snapshot(e)


if return_as_message: if return_as_message:


+ 1
- 1
frappe/utils/error.py Bestand weergeven

@@ -21,7 +21,7 @@ def make_error_snapshot(exception):
if frappe.conf.disable_error_snapshot: if frappe.conf.disable_error_snapshot:
return return


logger = frappe.logger(with_more_info=False)
logger = frappe.logger(with_more_info=True)


try: try:
error_id = '{timestamp:s}-{ip:s}-{hash:s}'.format( error_id = '{timestamp:s}-{ip:s}-{hash:s}'.format(


+ 7
- 21
frappe/utils/logger.py Bestand weergeven

@@ -15,17 +15,19 @@ import frappe


default_log_level = logging.DEBUG default_log_level = logging.DEBUG
site = getattr(frappe.local, 'site', None) 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: if module in frappe.loggers:
return frappe.loggers[module] return frappe.loggers[module]


if not module: if not module:
module = "frappe" module = "frappe"
with_more_info = True


logfile = module + '.log' logfile = module + '.log'
site = getattr(frappe.local, 'site', None)
LOG_FILENAME = os.path.join('..', 'logs', logfile) LOG_FILENAME = os.path.join('..', 'logs', logfile)


logger = logging.getLogger(module) logger = logging.getLogger(module)
@@ -54,25 +56,9 @@ def get_logger(module, with_more_info=True):
class SiteContextFilter(logging.Filter): class SiteContextFilter(logging.Filter):
"""This is a filter which injects request information (if available) into the log.""" """This is a filter which injects request information (if available) into the log."""
def filter(self, record): 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): def set_log_level(level):
'''Use this method to set log level to something other than the default DEBUG''' '''Use this method to set log level to something other than the default DEBUG'''


Laden…
Annuleren
Opslaan