Merge "enable logging to file for quiet mode" into stable/ussuri

This commit is contained in:
Zuul 2022-04-19 16:46:03 +00:00 committed by Gerrit Code Review
commit cdb9d2e512
3 changed files with 30 additions and 11 deletions

View File

@ -21,21 +21,33 @@ def make_a_logger(conf=None, image_name=None):
log = logging.getLogger(".".join([__name__, image_name]))
else:
log = logging.getLogger(__name__)
if conf is not None and conf.debug:
loglevel = logging.DEBUG
else:
loglevel = logging.INFO
if not log.handlers:
if conf is None or not conf.logs_dir or not image_name:
handler = logging.StreamHandler(sys.stderr)
log.propagate = False
stream_handler = logging.StreamHandler(sys.stderr)
stream_handler.setFormatter(logging.Formatter(logging.BASIC_FORMAT))
# NOTE(hrw): quiet mode matters only on console
if conf is not None and conf.quiet:
stream_handler.setLevel(logging.CRITICAL)
else:
stream_handler.setLevel(loglevel)
log.addHandler(stream_handler)
log.propagate = False
if conf is not None and conf.logs_dir and image_name:
filename = os.path.join(conf.logs_dir, "%s.log" % image_name)
handler = logging.FileHandler(filename, delay=True)
handler.setFormatter(logging.Formatter(logging.BASIC_FORMAT))
log.addHandler(handler)
if conf is not None and conf.debug:
log.setLevel(logging.DEBUG)
elif conf is not None and conf.quiet and image_name:
log.setLevel(logging.CRITICAL)
else:
log.setLevel(logging.INFO)
# NOTE(hrw): logfile will be INFO or DEBUG
handler.setLevel(loglevel)
handler.setFormatter(logging.Formatter(logging.BASIC_FORMAT))
log.addHandler(handler)
# NOTE(hrw): needs to be high, handlers have own levels
log.setLevel(logging.DEBUG)
return log

View File

@ -0,0 +1,6 @@
---
features:
- |
Quiet mode (enabled with ``--quiet`` argument) can be combined with
``--logs-dir`` option now. Console output will be quiet as expected while
building output will be stored in separate log files.

View File

@ -9,6 +9,7 @@
DEFAULT:
debug: true
logs_dir: "{{ kolla_build_logs_dir }}"
quiet: true
base: "{{ base_distro }}"
install_type: "{{ install_type }}"
template_override: /etc/kolla/template_overrides.j2