feat: override site name via _site
added filter parameter for logger
This commit is contained in:
parent
c87d598480
commit
ad1152f8e8
2 changed files with 11 additions and 9 deletions
|
|
@ -1559,10 +1559,10 @@ def get_doctype_app(doctype):
|
|||
|
||||
loggers = {}
|
||||
log_level = None
|
||||
def logger(module=None, with_more_info=False, _site=None):
|
||||
def logger(module=None, with_more_info=False, _site=None, filter=None):
|
||||
'''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, _site=_site)
|
||||
return get_logger(module=module, with_more_info=with_more_info, _site=_site, filter=filter)
|
||||
|
||||
def log_error(message=None, title=_("Error")):
|
||||
'''Log error to Error Log'''
|
||||
|
|
|
|||
|
|
@ -17,22 +17,20 @@ default_log_level = logging.DEBUG
|
|||
site = getattr(frappe.local, 'site', None)
|
||||
|
||||
|
||||
def get_logger(module, with_more_info=False, _site=None):
|
||||
def get_logger(module, with_more_info=False, _site=None, filter=None):
|
||||
"""Application Logger for your given module
|
||||
|
||||
Args:
|
||||
module (str): Name of your logger and consequently your log file.
|
||||
with_more_info (bool, optional): Will log the form dict using the SiteContextFilter. Defaults to False.
|
||||
_site (str, optional): If set, validates the current site context with the passed value. The `frappe.web` logger uses this to determine that the application is logging information related to the logger called. Defaults to None.
|
||||
_site (str, optional): Overrides the global site variable set in this scope. Defaults to None.
|
||||
filter (function, optional): Add a filter function for your logger
|
||||
|
||||
Returns:
|
||||
<class 'logging.Logger'>: Returns a Python logger object with Site and Bench level logging capabilities.
|
||||
"""
|
||||
global site
|
||||
|
||||
def allow_site():
|
||||
return (_site and _site == site) or bool(site)
|
||||
|
||||
if module in frappe.loggers:
|
||||
return frappe.loggers[module]
|
||||
|
||||
|
|
@ -42,6 +40,7 @@ def get_logger(module, with_more_info=False, _site=None):
|
|||
|
||||
logfile = module + '.log'
|
||||
site = getattr(frappe.local, 'site', None)
|
||||
equivalent_site = _site or site
|
||||
LOG_FILENAME = os.path.join('..', 'logs', logfile)
|
||||
|
||||
logger = logging.getLogger(module)
|
||||
|
|
@ -52,8 +51,8 @@ def get_logger(module, with_more_info=False, _site=None):
|
|||
handler = RotatingFileHandler(LOG_FILENAME, maxBytes=100_000, backupCount=20)
|
||||
logger.addHandler(handler)
|
||||
|
||||
if allow_site():
|
||||
SITELOG_FILENAME = os.path.join(site, 'logs', logfile)
|
||||
if equivalent_site:
|
||||
SITELOG_FILENAME = os.path.join(equivalent_site, 'logs', logfile)
|
||||
site_handler = RotatingFileHandler(SITELOG_FILENAME, maxBytes=100_000, backupCount=20)
|
||||
site_handler.setFormatter(formatter)
|
||||
logger.addHandler(site_handler)
|
||||
|
|
@ -61,6 +60,9 @@ def get_logger(module, with_more_info=False, _site=None):
|
|||
if with_more_info:
|
||||
handler.addFilter(SiteContextFilter())
|
||||
|
||||
if filter:
|
||||
logger.addFilter(filter)
|
||||
|
||||
handler.setFormatter(formatter)
|
||||
|
||||
frappe.loggers[module] = logger
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue