diff --git a/broker/__init__.py b/broker/__init__.py index 5449b8ad..a7a6a458 100644 --- a/broker/__init__.py +++ b/broker/__init__.py @@ -1,3 +1,3 @@ -from broker.broker import Broker +#from broker.broker import Broker -VMBroker = Broker +#VMBroker = Broker diff --git a/broker/broker.py b/broker/broker.py index 569410a2..4077bb5f 100644 --- a/broker/broker.py +++ b/broker/broker.py @@ -1,8 +1,10 @@ -from logzero import logger from broker.providers import PROVIDERS, PROVIDER_ACTIONS, _provider_imports from broker.hosts import Host from broker import exceptions, helpers from concurrent.futures import ThreadPoolExecutor, as_completed +from logging import getLogger + +logger = getLogger('broker') # load all the provider class so they are registered for _import in _provider_imports: diff --git a/broker/commands.py b/broker/commands.py index e45fda7b..241aeaab 100644 --- a/broker/commands.py +++ b/broker/commands.py @@ -2,12 +2,14 @@ import signal import sys import click -from logzero import logger +from logging import getLogger from broker import exceptions, helpers, settings from broker.broker import PROVIDERS, PROVIDER_ACTIONS, Broker from broker.logger import LOG_LEVEL from broker import exceptions, helpers, settings +logger = getLogger(__name__) +logger.propagate = True signal.signal(signal.SIGINT, helpers.handle_keyboardinterrupt) diff --git a/broker/exceptions.py b/broker/exceptions.py index 399bbed8..5877d457 100644 --- a/broker/exceptions.py +++ b/broker/exceptions.py @@ -1,5 +1,8 @@ """A collection of Broker-specific exceptions""" -from logzero import logger +from logging import getLogger + +logger = getLogger(__name__) +logger.propagate = True class BrokerError(Exception): diff --git a/broker/helpers.py b/broker/helpers.py index cc61cf84..f3424cc2 100644 --- a/broker/helpers.py +++ b/broker/helpers.py @@ -15,11 +15,14 @@ from uuid import uuid4 import yaml -from logzero import logger +from logging import getLogger from broker import exceptions, settings from broker import logger as b_log +logger = getLogger(__name__) +logger.propagate = True + FilterTest = namedtuple("FilterTest", "haystack needle test") diff --git a/broker/hosts.py b/broker/hosts.py index 93a9f7c2..7a3f3011 100644 --- a/broker/hosts.py +++ b/broker/hosts.py @@ -1,12 +1,13 @@ # from functools import cached_property -from logzero import logger from broker.exceptions import NotImplementedError, HostError from broker.session import ContainerSession, Session from broker.settings import settings +from broker.logger import init_logger +logger = init_logger(__name__) +logger.propagate = True class Host: - default_timeout = 0 # timeout in ms, 0 is infinite def __init__(self, hostname=None, name=None, from_dict=False, **kwargs): diff --git a/broker/logger.py b/broker/logger.py index c66fe553..64af6a09 100644 --- a/broker/logger.py +++ b/broker/logger.py @@ -19,7 +19,6 @@ class LOG_LEVEL(IntEnum): WARNING = logging.WARNING ERROR = logging.ERROR - class RedactingFilter(logging.Filter): """Custom logging.Filter to redact secrets from the Dynaconf config""" def __init__(self, sensitive): @@ -55,12 +54,12 @@ def redact_dynaconf(self, data): _sensitive = ["password", "pword", "token", "host_password"] logging.addLevelName("TRACE", LOG_LEVEL.TRACE) logzero.DEFAULT_COLORS[LOG_LEVEL.TRACE.value] = logzero.colors.Fore.MAGENTA +logger_prefix = '' def patch_awx_for_verbosity(api): client = api.client awx_log = client.log - - awx_log.parent = logzero.logger + #awx_log.parent = logzero.logger def patch(cls, name): func = getattr(cls, name) @@ -130,21 +129,36 @@ def set_file_logging(level=settings.logging.file_level, path="logs/broker.log"): ) -def setup_logzero( +def setup_logger( level=settings.logging.console_level, formatter=None, file_level=settings.logging.file_level, name=None, - path="logs/broker.log", + path=None, + propagate=False, ): urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) - patch_awx_for_verbosity(awxkit.api) - set_log_level(level) - set_file_logging(file_level, path) - if formatter: - logzero.formatter(formatter) - logzero.logger.name = name or "broker" - logzero.logger.addFilter(RedactingFilter(_sensitive)) - - -setup_logzero() + if formatter is None: + formatter = formatter_factory(level) + logger = logging.getLogger(name or 'broker') + logger.propagate = propagate + logger.setLevel(resolve_log_level(file_level)) + logger.addFilter(RedactingFilter(_sensitive)) + # cover logging to console + sh = logging.StreamHandler() + sh.setLevel(resolve_log_level(level)) + logger.addHandler(sh) + # attach awxkit upstream logger to the hierarchy + awxkit.api.client.log.parent = logger + + # used for attaching module-based loggers to hierarchy properly + global logger_prefix + logger_prefix = logger.parent.name+'.' if logger.parent.name != 'root' else '' + #set_log_level(level) + #set_file_logging(file_level, path) + #logzero.logger.name = name or "broker" + # logzero.logger.addFilter(RedactingFilter(_sensitive)) + +def init_logger(module): + return logging.getLogger(f'{logger_prefix}{module}') +# setup_logzero() diff --git a/broker/session.py b/broker/session.py index e3552dc4..843c8e1a 100644 --- a/broker/session.py +++ b/broker/session.py @@ -2,11 +2,14 @@ import socket import tempfile from pathlib import Path -from logzero import logger +from logging import getLogger from ssh2.session import Session as ssh2_Session from ssh2 import sftp as ssh2_sftp from broker import helpers +logger = getLogger(__name__) +logger.propagate = True + SESSIONS = {} SFTP_MODE = (