Create a rich console formatter for Dagster logging.
This formatter provides human-readable, colorized console output suitable
for development and interactive use. It includes timestamps, logger names,
log levels, and stack info when available.
Returns
| Type |
Description |
ProcessorFormatter
|
A formatter configured for rich console output with automatic
fallback for older structlog versions.
|
See Also
kedro_dagster.logging.dagster_json_formatter :
JSON formatter for log aggregation systems.
kedro_dagster.logging.dagster_colored_formatter :
Colored formatter using coloredlogs.
Source Code
View on GitHub
Show/Hide source
| def dagster_rich_formatter() -> structlog.stdlib.ProcessorFormatter:
"""Create a rich console formatter for Dagster logging.
This formatter provides human-readable, colorized console output suitable
for development and interactive use. It includes timestamps, logger names,
log levels, and stack info when available.
Returns
-------
structlog.stdlib.ProcessorFormatter
A formatter configured for rich console output with automatic
fallback for older structlog versions.
See Also
--------
`kedro_dagster.logging.dagster_json_formatter` :
JSON formatter for log aggregation systems.
`kedro_dagster.logging.dagster_colored_formatter` :
Colored formatter using coloredlogs.
"""
foreign_pre_chain = [
structlog.stdlib.add_logger_name,
structlog.stdlib.add_log_level,
structlog.processors.TimeStamper(fmt="iso", utc=True),
structlog.processors.StackInfoRenderer(),
structlog.stdlib.ExtraAdder(),
]
processors = [
structlog.stdlib.ProcessorFormatter.remove_processors_meta,
structlog.dev.ConsoleRenderer(),
]
try:
# Try the newer API with processors list
return structlog.stdlib.ProcessorFormatter(
foreign_pre_chain=foreign_pre_chain,
processors=processors,
)
except TypeError:
# Fallback to older API with single processor
# Chain the processors manually for older versions
processor = structlog.dev.ConsoleRenderer()
return structlog.stdlib.ProcessorFormatter(
foreign_pre_chain=foreign_pre_chain,
processor=processor,
)
|