2929}
3030
3131
32- def setup_logger (logger = None , level = "INFO" ):
32+ def setup_logger (
33+ logger : t .Optional [logging .Logger ] = None , level : str = "INFO"
34+ ) -> None :
3335 """
3436 Setup logging for CLI use.
3537
@@ -49,80 +51,82 @@ def setup_logger(logger=None, level="INFO"):
4951
5052
5153def set_style (
52- message , stylized , style_before = None , style_after = None , prefix = "" , suffix = ""
53- ):
54+ message : str ,
55+ stylized : bool ,
56+ style_before : str = "" ,
57+ style_after : str = "" ,
58+ prefix : str = "" ,
59+ suffix : str = "" ,
60+ ) -> str :
5461 if stylized :
5562 return prefix + style_before + message + style_after + suffix
5663
5764 return prefix + message + suffix
5865
5966
60- def default_log_template (
61- self : t .Type [logging .Formatter ],
62- record : logging .LogRecord ,
63- stylized : t .Optional [bool ] = False ,
64- ** kwargs : t .Any ,
65- ) -> str :
66- """
67- Return the prefix for the log message. Template for Formatter.
68-
69- Parameters
70- ----------
71- :py:class:`logging.LogRecord` :
72- object. this is passed in from inside the
73- :py:meth:`logging.Formatter.format` record.
74-
75- Returns
76- -------
77- str
78- template for logger message
79- """
80-
81- reset = Style .RESET_ALL
82- levelname = set_style (
83- "(%(levelname)s)" ,
84- stylized ,
85- style_before = (LEVEL_COLORS .get (record .levelname , "" ) + Style .BRIGHT ),
86- style_after = Style .RESET_ALL ,
87- suffix = " " ,
88- )
89- asctime = set_style (
90- "%(asctime)s" ,
91- stylized ,
92- style_before = (Fore .BLACK + Style .DIM + Style .BRIGHT ),
93- style_after = (Fore .RESET + Style .RESET_ALL ),
94- prefix = "[" ,
95- suffix = "]" ,
96- )
97- name = set_style (
98- "%(name)s" ,
99- stylized ,
100- style_before = (Fore .WHITE + Style .DIM + Style .BRIGHT ),
101- style_after = (Fore .RESET + Style .RESET_ALL ),
102- prefix = " " ,
103- suffix = " " ,
104- )
105-
106- if stylized :
107- return reset + levelname + asctime + name + reset
108-
109- return levelname + asctime + name
110-
111-
11267class LogFormatter (logging .Formatter ):
113- template = default_log_template
114-
115- def __init__ (self , color = True , * args , ** kwargs ):
68+ def template (
69+ self : logging .Formatter ,
70+ record : logging .LogRecord ,
71+ stylized : bool = False ,
72+ ** kwargs : t .Any ,
73+ ) -> str :
74+ """
75+ Return the prefix for the log message. Template for Formatter.
76+
77+ Parameters
78+ ----------
79+ :py:class:`logging.LogRecord` :
80+ object. this is passed in from inside the
81+ :py:meth:`logging.Formatter.format` record.
82+
83+ Returns
84+ -------
85+ str
86+ template for logger message
87+ """
88+ reset = Style .RESET_ALL
89+ levelname = set_style (
90+ "(%(levelname)s)" ,
91+ stylized ,
92+ style_before = (LEVEL_COLORS .get (record .levelname , "" ) + Style .BRIGHT ),
93+ style_after = Style .RESET_ALL ,
94+ suffix = " " ,
95+ )
96+ asctime = set_style (
97+ "%(asctime)s" ,
98+ stylized ,
99+ style_before = (Fore .BLACK + Style .DIM + Style .BRIGHT ),
100+ style_after = (Fore .RESET + Style .RESET_ALL ),
101+ prefix = "[" ,
102+ suffix = "]" ,
103+ )
104+ name = set_style (
105+ "%(name)s" ,
106+ stylized ,
107+ style_before = (Fore .WHITE + Style .DIM + Style .BRIGHT ),
108+ style_after = (Fore .RESET + Style .RESET_ALL ),
109+ prefix = " " ,
110+ suffix = " " ,
111+ )
112+
113+ if stylized :
114+ return reset + levelname + asctime + name + reset
115+
116+ return levelname + asctime + name
117+
118+ def __init__ (self , color : bool = True , * args , ** kwargs ) -> None :
116119 logging .Formatter .__init__ (self , * args , ** kwargs )
117120
118- def format (self , record ) :
121+ def format (self , record : logging . LogRecord ) -> str :
119122 try :
120123 record .message = record .getMessage ()
121124 except Exception as e :
122125 record .message = f"Bad message ({ e !r} ): { record .__dict__ !r} "
123126
124127 date_format = "%H:%m:%S"
125- record .asctime = time .strftime (date_format , self .converter (record .created ))
128+ formatting = self .converter (record .created ) # type:ignore
129+ record .asctime = time .strftime (date_format , formatting )
126130
127131 prefix = self .template (record ) % record .__dict__
128132
0 commit comments