Unverified 提交 741fac81 authored 作者: Max Strobel's avatar Max Strobel 提交者: GitHub

fix: disable usage of root logger (#7296)

* fix: disable usage of root logger `logging.basicConfig` configures Python's root logger. This prohibits fine control of logging, overwrites logging configuration done outside the package, and is not best practice. Instead, the used logger is now configured directly, and the root logger is untouched. Example: If yolov5 is used as part of another project with some sophisticated logging, the internal `logging.basicConfig` call overwrites all the external configuration. * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update general.py * Update general.py * Comment kaggle * Uncomment kaggle Co-authored-by: 's avatarMaximilian Strobel <Maximilian.Strobel@infineon.com> Co-authored-by: 's avatarGlenn Jocher <glenn.jocher@ultralytics.com> Co-authored-by: 's avatarpre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
上级 c759bbdf
......@@ -61,9 +61,9 @@ names: ['Person', 'Sneakers', 'Chair', 'Other Shoes', 'Hat', 'Car', 'Lamp', 'Gla
# Download script/URL (optional) ---------------------------------------------------------------------------------------
download: |
from tqdm import tqdm
from utils.general import Path, check_requirements, download, np, xyxy2xywhn
check_requirements(('pycocotools>=2.0',))
from pycocotools.coco import COCO
......
......@@ -82,11 +82,17 @@ def set_logging(name=None, verbose=VERBOSE):
for h in logging.root.handlers:
logging.root.removeHandler(h) # remove all handlers associated with the root logger object
rank = int(os.getenv('RANK', -1)) # rank in world for Multi-GPU trainings
logging.basicConfig(format="%(message)s", level=logging.INFO if (verbose and rank in (-1, 0)) else logging.WARNING)
return logging.getLogger(name)
level = logging.INFO if (verbose and rank in (-1, 0)) else logging.WARNING
log = logging.getLogger(name)
log.setLevel(level)
handler = logging.StreamHandler()
handler.setFormatter(logging.Formatter("%(message)s"))
handler.setLevel(level)
log.addHandler(handler)
LOGGER = set_logging('yolov5') # define globally (used in train.py, val.py, detect.py, etc.)
set_logging() # run before defining LOGGER
LOGGER = logging.getLogger("yolov5") # define globally (used in train.py, val.py, detect.py, etc.)
def user_config_dir(dir='Ultralytics', env_var='YOLOV5_CONFIG_DIR'):
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论