5151}
5252
5353
54+ class LogExtra (TypedDict ):
55+ log_uid : NotRequired [str ]
56+ log_oec : NotRequired [str ]
57+
58+
59+ def get_log_record_extra (
60+ * ,
61+ user_id : int | str | None = None ,
62+ error_code : str | None = None ,
63+ ) -> LogExtra | None :
64+ extra : LogExtra = {}
65+
66+ if user_id :
67+ assert int (user_id ) > 0 # nosec
68+ extra ["log_uid" ] = f"{ user_id } "
69+ if error_code :
70+ extra ["log_oec" ] = error_code
71+
72+ return extra or None
73+
74+
5475class CustomFormatter (logging .Formatter ):
5576 """Custom Formatter does these 2 things:
5677 1. Overrides 'funcName' with the value of 'func_name_override', if it exists.
@@ -66,8 +87,10 @@ def format(self, record) -> str:
6687 record .funcName = record .func_name_override
6788 if hasattr (record , "file_name_override" ):
6889 record .filename = record .file_name_override
69- if not hasattr (record , "log_uid" ):
70- record .log_uid = None # Default value if user is not provided in the log
90+
91+ for name in LogExtra .__optional_keys__ : # pylint: disable=no-member
92+ if not hasattr (record , name ):
93+ setattr (record , name , None )
7194
7295 if self .log_format_local_dev_enabled :
7396 levelname = record .levelname
@@ -79,11 +102,6 @@ def format(self, record) -> str:
79102 return super ().format (record ).replace ("\n " , "\\ n" )
80103
81104
82- class LogExtra (TypedDict ):
83- log_uid : NotRequired [str ]
84- log_oec : NotRequired [str ]
85-
86-
87105# SEE https://docs.python.org/3/library/logging.html#logrecord-attributes
88106DEFAULT_FORMATTING = (
89107 "log_level=%(levelname)s "
@@ -352,22 +370,6 @@ def log_catch(logger: logging.Logger, *, reraise: bool = True) -> Iterator[None]
352370LogMessageStr : TypeAlias = str
353371
354372
355- def get_log_record_extra (
356- * ,
357- user_id : int | str | None = None ,
358- error_code : str | None = None ,
359- ) -> LogExtra | None :
360- extra : LogExtra = {}
361-
362- if user_id :
363- assert int (user_id ) > 0 # nosec
364- extra ["log_uid" ] = f"{ user_id } "
365- if error_code :
366- extra ["log_oec" ] = error_code
367-
368- return extra or None
369-
370-
371373def _un_capitalize (s : str ) -> str :
372374 return s [:1 ].lower () + s [1 :] if s else ""
373375
0 commit comments