@@ -33,6 +33,18 @@ def _setup_logfile() -> Path:
3333 return logfile
3434
3535
36+ class TraceIDFilter (logging .Filter ):
37+ """add trace_id to the log record"""
38+
39+ def filter (self , record ):
40+ try :
41+ trace_id = get_current_trace_id ()
42+ record .trace_id = trace_id if trace_id else "no-trace-id"
43+ except Exception :
44+ record .trace_id = "no-trace-id"
45+ return True
46+
47+
3648class CustomLoggerRequestHandler (logging .Handler ):
3749 _instance = None
3850 _lock = threading .Lock ()
@@ -123,22 +135,23 @@ def close(self):
123135 "disable_existing_loggers" : False ,
124136 "formatters" : {
125137 "standard" : {
126- "format" : "%(asctime)s - %(name)s - %(levelname)s - %(filename)s:%(lineno)d - %(funcName)s - %(message)s"
138+ "format" : "%(asctime)s [%(trace_id)s] - %(name)s - %(levelname)s - %(filename)s:%(lineno)d - %(funcName)s - %(message)s"
127139 },
128140 "no_datetime" : {
129- "format" : "%(name)s - %(levelname)s - %(filename)s:%(lineno)d - %(funcName)s - %(message)s"
141+ "format" : "[%(trace_id)s] - %(name)s - %(levelname)s - %(filename)s:%(lineno)d - %(funcName)s - %(message)s"
130142 },
131143 },
132144 "filters" : {
133- "package_tree_filter" : {"()" : "logging.Filter" , "name" : settings .LOG_FILTER_TREE_PREFIX }
145+ "package_tree_filter" : {"()" : "logging.Filter" , "name" : settings .LOG_FILTER_TREE_PREFIX },
146+ "trace_id_filter" : {"()" : "memos.log.TraceIDFilter" },
134147 },
135148 "handlers" : {
136149 "console" : {
137150 "level" : selected_log_level ,
138151 "class" : "logging.StreamHandler" ,
139152 "stream" : stdout ,
140153 "formatter" : "no_datetime" ,
141- "filters" : ["package_tree_filter" ],
154+ "filters" : ["package_tree_filter" , "trace_id_filter" ],
142155 },
143156 "file" : {
144157 "level" : "DEBUG" ,
@@ -147,6 +160,7 @@ def close(self):
147160 "maxBytes" : 1024 ** 2 * 10 ,
148161 "backupCount" : 10 ,
149162 "formatter" : "standard" ,
163+ "filters" : ["trace_id_filter" ],
150164 },
151165 },
152166 "root" : { # Root logger handles all logs
0 commit comments