blob: 84fa9ca5571df96dbe94cb986b7bf7a3ff091787 [file] [log] [blame]
# Copyright (c) 2023 Nordic Semiconductor ASA
#
# SPDX-License-Identifier: Apache-2.0
from __future__ import annotations
import logging.config
import os
import pytest
def configure_logging(config: pytest.Config) -> None:
"""Configure logging."""
output_dir = config.option.output_dir
os.makedirs(output_dir, exist_ok=True)
log_file = os.path.join(output_dir, 'twister_harness.log')
if hasattr(config, 'workerinput'):
worker_id = config.workerinput['workerid']
log_file = os.path.join(output_dir, f'twister_harness_{worker_id}.log')
log_format = '%(asctime)s:%(levelname)s:%(name)s: %(message)s'
log_level = config.getoption('--log-level') or config.getini('log_level') or logging.INFO
log_file = config.getoption('--log-file') or config.getini('log_file') or log_file
log_format = config.getini('log_cli_format') or log_format
default_config = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'standard': {
'format': log_format,
},
'simply': {
'format': '%(asctime)s.%(msecs)d:%(levelname)s: %(message)s',
'datefmt': '%H:%M:%S'
}
},
'handlers': {
'file': {
'class': 'logging.FileHandler',
'level': 'DEBUG',
'formatter': 'standard',
'filters': [],
'filename': log_file,
'encoding': 'utf8',
'mode': 'w'
},
'console': {
'class': 'logging.StreamHandler',
'level': 'DEBUG',
'formatter': 'simply',
'filters': [],
}
},
'loggers': {
'': {
'handlers': ['console', 'file'],
'level': 'WARNING',
'propagate': False
},
'twister_harness': {
'handlers': ['console', 'file'],
'level': log_level,
'propagate': False,
}
}
}
logging.config.dictConfig(default_config)