@@ -105,7 +105,7 @@ def format_log_msg(msg, *args) -> str:
105105 return msg % args
106106 return msg
107107
108- def log (self , levelno , message , * args , exc_info = None , scope = None ):
108+ def log (self , levelno , message , * args , exc_info = None , scope = None , rate_limit = False ):
109109 level = LevelMap [levelno ]
110110 frame = inspect .currentframe ()
111111 caller_frame = frame .f_back .f_back
@@ -116,6 +116,9 @@ def log(self, levelno, message, *args, exc_info=None, scope=None):
116116 if exc_info :
117117 exc_text = self .format_exception (exc_info )
118118 msg = msg + "\n " + exc_text
119+ if rate_limit :
120+ ucmlogger .log_rate_limit (level , file , func , line , msg , message )
121+ return
119122 ucmlogger .log (level , file , func , line , msg )
120123
121124 @staticmethod
@@ -148,6 +151,15 @@ def debug_once(self, message: str, *args: Hashable, **kwargs: Hashable):
148151 def exception (self , message : str , * args : Hashable , ** kwargs : Hashable ):
149152 self .log (logging .ERROR , message , * args , ** kwargs , exc_info = True )
150153
154+ def info_limit (self , message : str , * args , ** kwargs ):
155+ self .log (logging .INFO , message , * args , ** kwargs , rate_limit = True )
156+
157+ def warning_limit (self , message : str , * args , ** kwargs ):
158+ self .log (logging .WARNING , message , * args , ** kwargs , rate_limit = True )
159+
160+ def debug_limit (self , message : str , * args , ** kwargs ):
161+ self .log (logging .DEBUG , message , * args , ** kwargs , rate_limit = True )
162+
151163
152164def init_logger (name : str = "UC" ) -> Logger :
153165 return Logger (name )
0 commit comments