mirror of https://github.com/mongodb/mongo
SERVER-77561: configurable resmoke logger and buffered file handler for resmoke logging
GitOrigin-RevId: 9627f667c70d6ee3d4958c2a41f3502ecfce6548
This commit is contained in:
parent
e2b1ef7fbd
commit
f3a9397b83
|
|
@ -162,6 +162,29 @@ class BufferedHandler(logging.Handler):
|
|||
logging.Handler.close(self)
|
||||
|
||||
|
||||
class BufferedFileHandler(BufferedHandler):
|
||||
"""File handler with in-memory buffering."""
|
||||
|
||||
def __init__(self, filename, capacity=2000, interval_secs=600):
|
||||
"""Initialize the handler with the filename and buffer capacity and flush interval."""
|
||||
super().__init__(capacity, interval_secs)
|
||||
self.file = open(filename, "a")
|
||||
|
||||
def process_record(self, record):
|
||||
"""Return the formatted record message appended with a newline."""
|
||||
return self.format(record) + "\n"
|
||||
|
||||
def _flush_buffer_with_lock(self, buf, close_called):
|
||||
"""Write the buffered log lines to the destination file."""
|
||||
self.file.writelines(buf)
|
||||
|
||||
def close(self):
|
||||
"""Close the handler and the file descriptor."""
|
||||
super().close()
|
||||
|
||||
self.file.close()
|
||||
|
||||
|
||||
class HTTPHandler(object):
|
||||
"""A class which sends data to a web server using POST requests."""
|
||||
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import yaml
|
|||
|
||||
from . import buildlogger
|
||||
from . import formatters
|
||||
from . import handlers
|
||||
from .. import config
|
||||
from .. import errors
|
||||
|
||||
|
|
@ -425,7 +426,7 @@ def _add_evergreen_handler(logger, logging_config, job_num, test_id=None):
|
|||
fp = f"{_get_evergreen_log_dirname()}/{get_evergreen_log_name(job_num, test_id)}"
|
||||
os.makedirs(os.path.dirname(fp), exist_ok=True)
|
||||
|
||||
handler = logging.FileHandler(filename=fp, mode="a")
|
||||
handler = handlers.BufferedFileHandler(fp)
|
||||
handler.setFormatter(
|
||||
formatters.EvergreenLogFormatter(fmt=logger_info.get("format", _DEFAULT_FORMAT)))
|
||||
logger.addHandler(handler)
|
||||
|
|
|
|||
|
|
@ -1391,7 +1391,7 @@ functions:
|
|||
${resmoke_args} \
|
||||
$extra_args \
|
||||
${test_flags} \
|
||||
--log=buildlogger \
|
||||
--log=${resmoke_logger} \
|
||||
--staggerJobs=on \
|
||||
--installDir=${install_dir|dist-test/bin} \
|
||||
--buildId=${build_id} \
|
||||
|
|
|
|||
Loading…
Reference in New Issue