diff --git a/swh/scheduler/celery_backend/config.py b/swh/scheduler/celery_backend/config.py --- a/swh/scheduler/celery_backend/config.py +++ b/swh/scheduler/celery_backend/config.py @@ -36,10 +36,12 @@ 'task_soft_time_limit': ('int', 0), } +logger = logging.getLogger(__name__) + @setup_logging.connect def setup_log_handler(loglevel=None, logfile=None, format=None, - colorize=None, **kwargs): + colorize=None, log_console=True, **kwargs): """Setup logging according to Software Heritage preferences. We use the command-line loglevel for tasks only, as we never @@ -55,7 +57,9 @@ root_logger = logging.getLogger('') root_logger.setLevel(logging.INFO) - if loglevel == logging.DEBUG: + if loglevel <= logging.DEBUG: + log_console = True + if log_console: color_formatter = ColorFormatter(format) if colorize else formatter console = logging.StreamHandler() console.setLevel(logging.DEBUG) @@ -94,6 +98,8 @@ """ + logger.info('Setup Queues & Tasks for %s', sender) + for module_name in itertools.chain( # celery worker -I flag instance.app.conf['include'], @@ -259,8 +265,8 @@ config = merge_configs( {k: v for (k, (_, v)) in DEFAULT_CONFIG.items()}, config or {}) - logging.getLogger(__name__).info( - 'Creating a Celery app with %s', config) + + logger.debug('Creating a Celery app with %s', config) # Instantiate the Celery app app = Celery(broker=config['task_broker'], diff --git a/swh/scheduler/cli.py b/swh/scheduler/cli.py --- a/swh/scheduler/cli.py +++ b/swh/scheduler/cli.py @@ -93,8 +93,10 @@ @click.option('--log-level', '-l', default='INFO', type=click.Choice(logging._nameToLevel.keys()), help="Log level (default to INFO)") +@click.option('--no-stdout', is_flag=True, default=False, + help="Do NOT output logs on the console") @click.pass_context -def cli(ctx, config_file, database, url, log_level): +def cli(ctx, config_file, database, url, log_level, no_stdout): """Software Heritage Scheduler CLI interface Default to use the the local scheduler instance (plugged to the @@ -104,7 +106,8 @@ from swh.scheduler.celery_backend.config import setup_log_handler log_level = setup_log_handler( loglevel=log_level, colorize=False, - format='[%(levelname)s] %(name)s -- %(message)s') + format='[%(levelname)s] %(name)s -- %(message)s', + log_console=not no_stdout) ctx.ensure_object(dict)