1212import pika
1313import yaml
1414
15- from pyobas import OpenBAS
15+ from pyobas import OpenBAS , utils
1616
1717TRUTHY : List [str ] = ["yes" , "true" , "True" ]
1818FALSY : List [str ] = ["no" , "false" , "False" ]
@@ -152,6 +152,7 @@ def __init__(
152152 self ,
153153 config : Dict ,
154154 injector_config : Dict ,
155+ logger ,
155156 callback ,
156157 ) -> None :
157158 threading .Thread .__init__ (self )
@@ -162,6 +163,7 @@ def __init__(
162163
163164 self .callback = callback
164165 self .config = config
166+ self .logger = logger
165167 self .host = injector_config .connection ["host" ]
166168 self .vhost = injector_config .connection ["vhost" ]
167169 self .use_ssl = injector_config .connection ["use_ssl" ]
@@ -197,10 +199,10 @@ def _data_handler(self, json_data) -> None:
197199 self .callback (json_data )
198200
199201 def run (self ) -> None :
200- print ("Starting ListenQueue thread" )
202+ self . logger . info ("Starting ListenQueue thread" )
201203 while not self .exit_event .is_set ():
202204 try :
203- print ("ListenQueue connecting to rabbitMq ." )
205+ self . logger . info ("ListenQueue connecting to RabbitMQ ." )
204206 # Connect the broker
205207 self .pika_credentials = pika .PlainCredentials (self .user , self .password )
206208 self .pika_parameters = pika .ConnectionParameters (
@@ -221,7 +223,7 @@ def run(self) -> None:
221223 # when not in cluster mode this line raise an exception
222224 self .channel .confirm_delivery ()
223225 except Exception as err : # pylint: disable=broad-except
224- print (str (err ))
226+ self . logger . error (str (err ))
225227 self .channel .basic_qos (prefetch_count = 1 )
226228 assert self .channel is not None
227229 self .channel .basic_consume (
@@ -232,25 +234,26 @@ def run(self) -> None:
232234 try :
233235 self .pika_connection .close ()
234236 except Exception as errInException :
235- print (str (errInException ))
237+ self . logger . error (str (errInException ))
236238 traceback .print_exc ()
237239 # Wait some time and then retry ListenQueue again.
238240 time .sleep (10 )
239241
240242 def stop (self ):
241- print ("Preparing ListenQueue for clean shutdown" )
243+ self . logger . info ("Preparing ListenQueue for clean shutdown" )
242244 self .exit_event .set ()
243245 self .pika_connection .close ()
244246 if self .thread :
245247 self .thread .join ()
246248
247249
248250class PingAlive (threading .Thread ):
249- def __init__ (self , api , config , ping_type ) -> None :
251+ def __init__ (self , api , config , logger , ping_type ) -> None :
250252 threading .Thread .__init__ (self )
251253 self .ping_type = ping_type
252254 self .api = api
253255 self .config = config
256+ self .logger = logger
254257 self .in_error = False
255258 self .exit_event = threading .Event ()
256259
@@ -262,15 +265,15 @@ def ping(self) -> None:
262265 else :
263266 self .api .collector .create (self .config , False )
264267 except Exception as e : # pylint: disable=broad-except
265- print (str (e ))
268+ self . logger . error (str (e ))
266269 self .exit_event .wait (40 )
267270
268271 def run (self ) -> None :
269- print ("Starting PingAlive thread" )
272+ self . logger . info ("Starting PingAlive thread" )
270273 self .ping ()
271274
272275 def stop (self ) -> None :
273- print ("Preparing PingAlive for clean shutdown" )
276+ self . logger . info ("Preparing PingAlive for clean shutdown" )
274277 self .exit_event .set ()
275278
276279
@@ -309,12 +312,20 @@ def __init__(self, config: OpenBASConfigHelper, icon) -> None:
309312 url = config .get_conf ("openbas_url" ),
310313 token = config .get_conf ("openbas_token" ),
311314 )
315+
312316 self .config = {
313317 "collector_id" : config .get_conf ("collector_id" ),
314318 "collector_name" : config .get_conf ("collector_name" ),
315319 "collector_type" : config .get_conf ("collector_type" ),
316320 "collector_period" : config .get_conf ("collector_period" ),
317321 }
322+
323+ self .logger_class = utils .logger (
324+ config .get_conf ("collector_log_level" , default = "info" ).upper (),
325+ config .get_conf ("collector_json_logging" , default = True ),
326+ )
327+ self .collector_logger = self .logger_class (config .get_conf ("collector_name" ))
328+
318329 icon_name = config .get_conf ("collector_id" ) + ".png"
319330 collector_icon = (icon_name , icon , "image/png" )
320331 self .api .collector .create (self .config , collector_icon )
@@ -323,7 +334,9 @@ def __init__(self, config: OpenBASConfigHelper, icon) -> None:
323334 self .scheduler = sched .scheduler (time .time , time .sleep )
324335 # Start ping thread
325336 if not self .connect_run_and_terminate :
326- self .ping = PingAlive (self .api , self .config , "collector" )
337+ self .ping = PingAlive (
338+ self .api , self .config , self .collector_logger , "collector"
339+ )
327340 self .ping .start ()
328341 self .listen_queue = None
329342
@@ -371,21 +384,28 @@ def __init__(self, config: OpenBASConfigHelper, icon) -> None:
371384 "injector_executor_clear_commands" , default = None
372385 ),
373386 }
387+
388+ self .logger_class = utils .logger (
389+ config .get_conf ("injector_log_level" , default = "info" ).upper (),
390+ config .get_conf ("injector_json_logging" , default = True ),
391+ )
392+ self .injector_logger = self .logger_class (config .get_conf ("injector_name" ))
393+
374394 icon_name = config .get_conf ("injector_type" ) + ".png"
375395 injector_icon = (icon_name , icon , "image/png" )
376396 self .injector_config = self .api .injector .create (self .config , injector_icon )
377397 self .connect_run_and_terminate = False
378398 self .scheduler = sched .scheduler (time .time , time .sleep )
379399 # Start ping thread
380400 if not self .connect_run_and_terminate :
381- self .ping = PingAlive (self .api , self .config , "injector" )
401+ self .ping = PingAlive (
402+ self .api , self .config , self .injector_logger , "injector"
403+ )
382404 self .ping .start ()
383405 self .listen_queue = None
384406
385407 def listen (self , message_callback : Callable [[Dict ], None ]) -> None :
386408 self .listen_queue = ListenQueue (
387- self .config ,
388- self .injector_config ,
389- message_callback ,
409+ self .config , self .injector_config , self .injector_logger , message_callback
390410 )
391411 self .listen_queue .start ()
0 commit comments