瀏覽代碼

feat(logger): implement `stream_only` to use StreamHandler instead of RotatingFileHandler (#16274)

* feat: implement valued parameter 'stream_only' in 'get_logger()' in order to stream logs into stderr instead rotating log files.

Co-authored-by: gavin <gavin18d@gmail.com>
version-14
Carlos Ríos 3 年之前
committed by GitHub
父節點
當前提交
e8fdca8698
沒有發現已知的金鑰在資料庫的簽署中 GPG Key ID: 4AEE18F83AFDEB23
共有 1 個文件被更改,包括 7 次插入3 次删除
  1. +7
    -3
      frappe/utils/logger.py

+ 7
- 3
frappe/utils/logger.py 查看文件

@@ -13,7 +13,7 @@ from frappe.utils import get_sites
default_log_level = logging.DEBUG


def get_logger(module=None, with_more_info=False, allow_site=True, filter=None, max_size=100_000, file_count=20):
def get_logger(module=None, with_more_info=False, allow_site=True, filter=None, max_size=100_000, file_count=20, stream_only=False):
"""Application Logger for your given module

Args:
@@ -23,6 +23,7 @@ def get_logger(module=None, with_more_info=False, allow_site=True, filter=None,
filter (function, optional): Add a filter function for your logger. Defaults to None.
max_size (int, optional): Max file size of each log file in bytes. Defaults to 100_000.
file_count (int, optional): Max count of log files to be retained via Log Rotation. Defaults to 20.
stream_only (bool, optional): Whether to stream logs only to stderr (True) or use log files (False). Defaults to False.

Returns:
<class 'logging.Logger'>: Returns a Python logger object with Site and Bench level logging capabilities.
@@ -54,11 +55,14 @@ def get_logger(module=None, with_more_info=False, allow_site=True, filter=None,
logger.propagate = False

formatter = logging.Formatter("%(asctime)s %(levelname)s {0} %(message)s".format(module))
handler = RotatingFileHandler(log_filename, maxBytes=max_size, backupCount=file_count)
if stream_only:
handler = logging.StreamHandler()
else:
handler = RotatingFileHandler(log_filename, maxBytes=max_size, backupCount=file_count)
handler.setFormatter(formatter)
logger.addHandler(handler)

if site:
if site and not stream_only:
sitelog_filename = os.path.join(site, "logs", logfile)
site_handler = RotatingFileHandler(sitelog_filename, maxBytes=max_size, backupCount=file_count)
site_handler.setFormatter(formatter)


Loading…
取消
儲存