392a497366
* Initial work on restructure of application state * Updated MOTD with more flexible input and add basic version * Remove unnecessary type ignores * Add wrapping and smarter output per process type * Add support for ASGI MOTD * Add Windows color support ernable * Refactor __main__ into submodule * Renest arguments * Passing unit tests * Passing unit tests * Typing * Fix num worker test * Add context to assert failure * Add some type annotations * Some linting * Line aware searching in test * Test abstractions * Fix some flappy tests * Bump up timeout on CLI tests * Change test for no access logs on gunicornworker * Add some basic test converage * Some new tests, and disallow workers and fast on app.run
81 lines
2.0 KiB
Python
81 lines
2.0 KiB
Python
import logging
|
|
import sys
|
|
|
|
from enum import Enum
|
|
from typing import Any, Dict
|
|
|
|
|
|
LOGGING_CONFIG_DEFAULTS: Dict[str, Any] = dict(
|
|
version=1,
|
|
disable_existing_loggers=False,
|
|
loggers={
|
|
"sanic.root": {"level": "INFO", "handlers": ["console"]},
|
|
"sanic.error": {
|
|
"level": "INFO",
|
|
"handlers": ["error_console"],
|
|
"propagate": True,
|
|
"qualname": "sanic.error",
|
|
},
|
|
"sanic.access": {
|
|
"level": "INFO",
|
|
"handlers": ["access_console"],
|
|
"propagate": True,
|
|
"qualname": "sanic.access",
|
|
},
|
|
},
|
|
handlers={
|
|
"console": {
|
|
"class": "logging.StreamHandler",
|
|
"formatter": "generic",
|
|
"stream": sys.stdout,
|
|
},
|
|
"error_console": {
|
|
"class": "logging.StreamHandler",
|
|
"formatter": "generic",
|
|
"stream": sys.stderr,
|
|
},
|
|
"access_console": {
|
|
"class": "logging.StreamHandler",
|
|
"formatter": "access",
|
|
"stream": sys.stdout,
|
|
},
|
|
},
|
|
formatters={
|
|
"generic": {
|
|
"format": "%(asctime)s [%(process)d] [%(levelname)s] %(message)s",
|
|
"datefmt": "[%Y-%m-%d %H:%M:%S %z]",
|
|
"class": "logging.Formatter",
|
|
},
|
|
"access": {
|
|
"format": "%(asctime)s - (%(name)s)[%(levelname)s][%(host)s]: "
|
|
+ "%(request)s %(message)s %(status)d %(byte)d",
|
|
"datefmt": "[%Y-%m-%d %H:%M:%S %z]",
|
|
"class": "logging.Formatter",
|
|
},
|
|
},
|
|
)
|
|
|
|
|
|
class Colors(str, Enum):
|
|
END = "\033[0m"
|
|
BLUE = "\033[01;34m"
|
|
GREEN = "\033[01;32m"
|
|
YELLOW = "\033[01;33m"
|
|
RED = "\033[01;31m"
|
|
|
|
|
|
logger = logging.getLogger("sanic.root")
|
|
"""
|
|
General Sanic logger
|
|
"""
|
|
|
|
error_logger = logging.getLogger("sanic.error")
|
|
"""
|
|
Logger used by Sanic for error logging
|
|
"""
|
|
|
|
access_logger = logging.getLogger("sanic.access")
|
|
"""
|
|
Logger used by Sanic for access logging
|
|
"""
|