|
|
|
@@ -39,6 +39,10 @@ def init_app(app: DifyApp): |
|
|
|
handlers=log_handlers, |
|
|
|
force=True, |
|
|
|
) |
|
|
|
|
|
|
|
# Apply RequestIdFormatter to all handlers |
|
|
|
apply_request_id_formatter() |
|
|
|
|
|
|
|
# Disable propagation for noisy loggers to avoid duplicate logs |
|
|
|
logging.getLogger("sqlalchemy.engine").propagate = False |
|
|
|
log_tz = dify_config.LOG_TZ |
|
|
|
@@ -74,3 +78,16 @@ class RequestIdFilter(logging.Filter): |
|
|
|
def filter(self, record): |
|
|
|
record.req_id = get_request_id() if flask.has_request_context() else "" |
|
|
|
return True |
|
|
|
|
|
|
|
|
|
|
|
class RequestIdFormatter(logging.Formatter): |
|
|
|
def format(self, record): |
|
|
|
if not hasattr(record, "req_id"): |
|
|
|
record.req_id = "" |
|
|
|
return super().format(record) |
|
|
|
|
|
|
|
|
|
|
|
def apply_request_id_formatter(): |
|
|
|
for handler in logging.root.handlers: |
|
|
|
if handler.formatter: |
|
|
|
handler.formatter = RequestIdFormatter(dify_config.LOG_FORMAT, dify_config.LOG_DATEFORMAT) |