From 7d9c018b44aa36e20412f680f6b30ec9bfad2ede Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Wed, 30 Mar 2022 21:40:59 +0300 Subject: [PATCH] Implement Click logging handler for package manager --- docs | 2 +- platformio/package/manager/base.py | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/docs b/docs index e672ed7a..fc5cf107 160000 --- a/docs +++ b/docs @@ -1 +1 @@ -Subproject commit e672ed7a4ae8f4cb962cb9784ce3734b2af94d30 +Subproject commit fc5cf10724bed8e14d78ca7f82f4917e95dea463 diff --git a/platformio/package/manager/base.py b/platformio/package/manager/base.py index 755323e9..85858b91 100644 --- a/platformio/package/manager/base.py +++ b/platformio/package/manager/base.py @@ -14,7 +14,6 @@ import logging import os -import sys from datetime import datetime import click @@ -41,6 +40,11 @@ from platformio.package.meta import ( from platformio.project.helpers import get_project_cache_dir +class ClickLoggingHandler(logging.Handler): + def emit(self, record): + click.echo(self.format(record)) + + class BasePackageManager( # pylint: disable=too-many-public-methods,too-many-instance-attributes PackageManagerDownloadMixin, PackageManageRegistryMixin, @@ -72,7 +76,7 @@ class BasePackageManager( # pylint: disable=too-many-public-methods,too-many-in logger = logging.getLogger(str(self.__class__.__name__).replace("Package", " ")) logger.setLevel(logging.INFO) formatter = logging.Formatter("%(name)s: %(message)s") - sh = logging.StreamHandler(sys.stdout) + sh = ClickLoggingHandler() sh.setFormatter(formatter) logger.handlers.clear() logger.addHandler(sh)