16
16
17
17
18
18
class StdoutLogger :
19
+ """ Class to log to stdout """
19
20
def __init__ (self , ** kwargs ):
20
21
self .debug = kwargs .get ('debug' )
21
22
self .print_header ()
22
23
init ()
23
24
25
+ # pylint: disable=too-many-branches
24
26
def log (self ,
25
- mes_type : str ,
27
+ msg_level : str ,
26
28
message : Any ,
27
29
** kwargs ) -> None :
30
+ """ Log to stdout
31
+
32
+ Args:
33
+ msg_level: Level message to log
34
+ message: Message data to log
35
+ """
28
36
29
37
notify_type = kwargs .get ('notify_type' )
30
38
scope = kwargs .get ('scope' )
31
39
32
- if not self .debug and mes_type == 'DEBUG' :
40
+ if not self .debug and msg_level == 'DEBUG' :
33
41
return
34
42
35
43
if dataclasses .is_dataclass (message ):
@@ -44,7 +52,7 @@ def log(self,
44
52
f' URL: { message .get ("kas" ).get ("externalUrl" )} \n ' \
45
53
f' VERSION: { message .get ("kas" ).get ("version" )} \n ' \
46
54
f' ENTERPRISE: { message .get ("enterprise" )} '
47
- mes_type = 'INSTANCE'
55
+ msg_level = 'INSTANCE'
48
56
if notify_type == "user" :
49
57
message = f'USER: \n ' \
50
58
f' ID: { message .get ("id" )} \n ' \
@@ -57,7 +65,7 @@ def log(self,
57
65
f' CAN_CREATE_GROUP: { message .get ("can_create_group" )} \n ' \
58
66
f' CAN_CREATE_PROJECT: { message .get ("can_create_project" )} \n ' \
59
67
f' 2FA_ENABLED: { message .get ("two_factor_enabled" )} '
60
- mes_type = 'USER'
68
+ msg_level = 'USER'
61
69
if notify_type == "token" :
62
70
message = f'PERSONAL_ACCESS_TOKEN: \n ' \
63
71
f' ID: { message .get ("id" )} \n ' \
@@ -68,7 +76,7 @@ def log(self,
68
76
f' LAST_USED_AT: { message .get ("last_used_at" )} \n ' \
69
77
f' ACTIVE: { message .get ("active" )} \n ' \
70
78
f' EXPIRY: { message .get ("expires_at" , "Never" )} '
71
- mes_type = 'WARNING'
79
+ msg_level = 'WARNING'
72
80
if notify_type == "result" :
73
81
if scope == 'blobs' :
74
82
message = 'SCOPE: Blob' \
@@ -145,12 +153,12 @@ def log(self,
145
153
f' URL: { message .get ("snippet" ).get ("web_url" )} \n ' \
146
154
f' POTENTIAL_SECRET: { message .get ("match_string" )} \n ' \
147
155
f' -----'
148
- mes_type = 'RESULT'
156
+ msg_level = 'RESULT'
149
157
try :
150
- self .log_to_stdout (message , mes_type )
158
+ self .log_to_stdout (message , msg_level )
151
159
except Exception as e :
152
160
print (e )
153
- self .log_to_stdout (message , mes_type )
161
+ self .log_to_stdout (message , msg_level )
154
162
155
163
def log_to_stdout (self ,
156
164
message : Any ,
@@ -236,7 +244,10 @@ def log_to_stdout(self,
236
244
sys .exit (1 )
237
245
print ('Formatting error' )
238
246
239
- def print_header (self ) -> None :
247
+ @staticmethod
248
+ def print_header () -> None :
249
+ """ Prints the header for the logger"""
250
+
240
251
print (" " .ljust (79 ) + Style .BRIGHT )
241
252
242
253
print (Fore .LIGHTRED_EX + Style .BRIGHT +
@@ -265,6 +276,7 @@ def print_header(self) -> None:
265
276
266
277
267
278
class JSONLogger (Logger ):
279
+ """ Custom logger class for JSON logging"""
268
280
def __init__ (self , name : str = 'gitlab_watchman' , ** kwargs ):
269
281
super ().__init__ (name )
270
282
self .notify_format = logging .Formatter (
@@ -290,41 +302,42 @@ def __init__(self, name: str = 'gitlab_watchman', **kwargs):
290
302
291
303
def log (self ,
292
304
level : str ,
293
- log_data : str or Dict ,
305
+ msg : str or Dict ,
294
306
** kwargs ):
295
307
if level .upper () == 'NOTIFY' :
296
308
self .handler .setFormatter (self .notify_format )
297
309
self .logger .info (
298
310
json .dumps (
299
- log_data ,
311
+ msg ,
300
312
cls = EnhancedJSONEncoder ),
301
313
extra = {
302
314
'scope' : kwargs .get ('scope' , '' ),
303
315
'type' : kwargs .get ('detect_type' , '' ),
304
316
'severity' : kwargs .get ('severity' , '' )})
305
317
elif level .upper () == 'INFO' :
306
318
self .handler .setFormatter (self .info_format )
307
- self .logger .info (json .dumps (log_data ))
319
+ self .logger .info (json .dumps (msg ))
308
320
elif level .upper () == 'DEBUG' :
309
321
self .handler .setFormatter (self .info_format )
310
- self .logger .info (json .dumps (log_data ))
322
+ self .logger .info (json .dumps (msg ))
311
323
elif level .upper () == 'SUCCESS' :
312
324
self .handler .setFormatter (self .success_format )
313
- self .logger .info (json .dumps (log_data ))
325
+ self .logger .info (json .dumps (msg ))
314
326
elif level .upper () == 'INSTANCE' :
315
327
self .handler .setFormatter (self .instance_format )
316
- self .logger .info (json .dumps (log_data ))
328
+ self .logger .info (json .dumps (msg ))
317
329
elif level .upper () == 'USER' :
318
330
self .handler .setFormatter (self .user_format )
319
- self .logger .info (json .dumps (log_data ))
331
+ self .logger .info (json .dumps (msg ))
320
332
elif level .upper () == 'TOKEN' :
321
333
self .handler .setFormatter (self .token_format )
322
- self .logger .info (json .dumps (log_data ))
334
+ self .logger .info (json .dumps (msg ))
323
335
else :
324
336
self .handler .setFormatter (self .info_format )
325
- self .logger .critical (log_data )
337
+ self .logger .critical (msg )
326
338
327
339
340
+ # pylint: disable=missing-class-docstring
328
341
class IsDataclass (Protocol ):
329
342
__dataclass_fields__ : ClassVar [Dict ]
330
343
@@ -360,4 +373,4 @@ def init_logger(logging_type: str, debug: bool) -> JSONLogger | StdoutLogger:
360
373
361
374
if not logging_type or logging_type == 'stdout' :
362
375
return StdoutLogger (debug = debug )
363
- return JSONLogger (debug = debug )
376
+ return JSONLogger (debug = debug )
0 commit comments