mirror of
https://github.com/getpelican/pelican.git
synced 2025-10-15 20:28:56 +02:00
Choose logging handler via --log-handler CLI option (#3293)
This commit is contained in:
parent
c46063cfc3
commit
39c964450c
2 changed files with 22 additions and 3 deletions
|
|
@ -19,7 +19,7 @@ __path__ = extend_path(__path__, __name__)
|
||||||
|
|
||||||
# pelican.log has to be the first pelican module to be loaded
|
# pelican.log has to be the first pelican module to be loaded
|
||||||
# because logging.setLoggerClass has to be called before logging.getLogger
|
# because logging.setLoggerClass has to be called before logging.getLogger
|
||||||
from pelican.log import console # noqa: I001
|
from pelican.log import console, DEFAULT_LOG_HANDLER # noqa: I001
|
||||||
from pelican.log import init as init_logging
|
from pelican.log import init as init_logging
|
||||||
from pelican.generators import (
|
from pelican.generators import (
|
||||||
ArticlesGenerator,
|
ArticlesGenerator,
|
||||||
|
|
@ -455,6 +455,17 @@ def parse_arguments(argv=None):
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
LOG_HANDLERS = {"plain": None, "rich": DEFAULT_LOG_HANDLER}
|
||||||
|
parser.add_argument(
|
||||||
|
"--log-handler",
|
||||||
|
default="rich",
|
||||||
|
choices=LOG_HANDLERS,
|
||||||
|
help=(
|
||||||
|
"Which handler to use to format log messages. "
|
||||||
|
"The `rich` handler prints output in columns."
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"--logs-dedup-min-level",
|
"--logs-dedup-min-level",
|
||||||
default="WARNING",
|
default="WARNING",
|
||||||
|
|
@ -509,6 +520,8 @@ def parse_arguments(argv=None):
|
||||||
if args.bind is not None and not args.listen:
|
if args.bind is not None and not args.listen:
|
||||||
logger.warning("--bind without --listen has no effect")
|
logger.warning("--bind without --listen has no effect")
|
||||||
|
|
||||||
|
args.log_handler = LOG_HANDLERS[args.log_handler]
|
||||||
|
|
||||||
return args
|
return args
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -631,6 +644,7 @@ def main(argv=None):
|
||||||
level=args.verbosity,
|
level=args.verbosity,
|
||||||
fatal=args.fatal,
|
fatal=args.fatal,
|
||||||
name=__name__,
|
name=__name__,
|
||||||
|
handler=args.log_handler,
|
||||||
logs_dedup_min_level=logs_dedup_min_level,
|
logs_dedup_min_level=logs_dedup_min_level,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -126,11 +126,13 @@ logging.setLoggerClass(FatalLogger)
|
||||||
# force root logger to be of our preferred class
|
# force root logger to be of our preferred class
|
||||||
logging.getLogger().__class__ = FatalLogger
|
logging.getLogger().__class__ = FatalLogger
|
||||||
|
|
||||||
|
DEFAULT_LOG_HANDLER = RichHandler(console=console)
|
||||||
|
|
||||||
|
|
||||||
def init(
|
def init(
|
||||||
level=None,
|
level=None,
|
||||||
fatal="",
|
fatal="",
|
||||||
handler=RichHandler(console=console),
|
handler=DEFAULT_LOG_HANDLER,
|
||||||
name=None,
|
name=None,
|
||||||
logs_dedup_min_level=None,
|
logs_dedup_min_level=None,
|
||||||
):
|
):
|
||||||
|
|
@ -139,7 +141,10 @@ def init(
|
||||||
|
|
||||||
LOG_FORMAT = "%(message)s"
|
LOG_FORMAT = "%(message)s"
|
||||||
logging.basicConfig(
|
logging.basicConfig(
|
||||||
level=level, format=LOG_FORMAT, datefmt="[%H:%M:%S]", handlers=[handler]
|
level=level,
|
||||||
|
format=LOG_FORMAT,
|
||||||
|
datefmt="[%H:%M:%S]",
|
||||||
|
handlers=[handler] if handler else [],
|
||||||
)
|
)
|
||||||
|
|
||||||
logger = logging.getLogger(name)
|
logger = logging.getLogger(name)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue