[loggers] keys = root, sqlalchemy [handlers] keys = console, console_rich, error_file, access_file [formatters] keys = generic, generic_rich, access [logger_root] ; Logging level for all loggers level = NOTSET handlers = console_rich, error_file [logger_sqlalchemy] handlers = qualname = sqlalchemy.engine [handler_console] class = logging.StreamHandler level = NOTSET formatter = generic stram = ext://sys.stdout [handler_error_file] class = logging.FileHandler formatter = generic level = WARNING args = ('/tmp/error.log','w') [handler_access_file] class = logging.FileHandler formatter = access args = ('/tmp/access.log',) [formatter_generic] format = [%(process)d|%(name)-12s|%(filename)s:%(lineno)d] %(levelname)-7s %(message)s datefmt = %H:%M:%S class = logging.Formatter [formatter_access] format = %(message)s class = logging.Formatter [formatter_generic_rich] format = [%(process)d %(name)s] %(message)s datefmt = %H:%M:%S class = logging.Formatter [handler_console_rich] class = app.logging.RichConsoleHandler args = (100, "blue") kwargs = {"omit_repeated_times":False, "show_time": False, "enable_link_path": True, "tracebacks_show_locals": True} level = NOTSET