33
44
55class LsassyLogger (logging .LoggerAdapter ):
6- def __init__ (self ):
7- super ().__init__ (self )
6+ def __init__ (self , no_color = False ):
7+ super ().__init__ (self , extra = None )
88 self .logger = logging .getLogger ("lsassy" )
99 self .logger .propagate = False
10- self .no_color = None
10+ self .no_color = no_color
1111
12- formatter = LsassyFormatter ()
13- handler = logging .StreamHandler (sys .stdout )
14- handler .setFormatter (formatter )
15- self .logger .addHandler (handler )
12+ formatter = LsassyFormatter (no_color = no_color )
13+ self . handler = logging .StreamHandler (sys .stdout )
14+ self . handler .setFormatter (formatter )
15+ self .logger .addHandler (self . handler )
1616
1717 def lsassy_highlight (self , msg ):
1818 """
@@ -24,35 +24,29 @@ def lsassy_highlight(self, msg):
2424 return msg
2525 return "\033 [1;33m{}\033 [0m" .format (msg )
2626
27+ def set_no_color (self , no_color = False ):
28+ self .logger .removeHandler (self .handler )
29+ self .handler = logging .StreamHandler (sys .stdout )
30+ self .handler .setFormatter (LsassyFormatter (no_color = no_color ))
31+ self .logger .addHandler (self .handler )
32+
2733
2834class LsassyFormatter (logging .Formatter ):
2935 """
3036 Custom formatting. Inspired by impacket "Logger" class
3137 """
3238 def __init__ (self , no_color = False ):
3339 self .formatter = logging .Formatter .__init__ (self , '%(bullet)s %(threadName)s %(message)s' , None )
34- self ._no_color = no_color
35- if not self ._no_color :
40+ self .no_color = no_color
41+ self .BLUE , self .WHITE , self .YELLOW , self .RED , self .GREEN , self .NC = '' , '' , '' , '' , '' , ''
42+ if not self .no_color :
3643 self .BLUE = '\033 [1;34m'
3744 self .WHITE = '\033 [1;37m'
3845 self .YELLOW = '\033 [1;33m'
3946 self .RED = '\033 [1;31m'
4047 self .GREEN = '\033 [1;32m'
4148 self .NC = '\033 [0m'
4249
43- @property
44- def no_color (self ):
45- try :
46- return self ._no_color
47- except AttributeError :
48- return False
49-
50- @no_color .setter
51- def no_color (self , no_color ):
52- if no_color :
53- self .BLUE , self .WHITE , self .YELLOW , self .RED , self .GREEN , self .NC = '' , '' , '' , '' , '' , ''
54- self ._no_color = no_color
55-
5650 def format (self , record ):
5751 """
5852 Custom bullet formatting with colors
0 commit comments