Oct-14-2023, 11:51 PM
You have two logger instances
When you log a message using log_alt and when you log a message using logger().l,
both will send messages to the syslog,resulting in duplicate log entries.
I would advise to use loguru, then get a get a much cleaner code.
See also that i added method
log_alt
and logger().l
both configured to log to the same syslog address (/dev/log).When you log a message using log_alt and when you log a message using logger().l,
both will send messages to the syslog,resulting in duplicate log entries.
I would advise to use loguru, then get a get a much cleaner code.
See also that i added method
__repr__
,to avoid to log the memory address of the Showme class:<bound method Showme.logsomething of <__main__.Showme object at 0x00000227BF57B150>> is sleeping for: 9
import random import time import threading from loguru import logger logger.add("log_info.log", level="INFO") class Showme: def __init__(self): pass def logsomething(self): logger.info('Logging something...') def __repr__(self): return "Class Showme" class TimerThread(threading.Thread): def __init__(self, interval, method): super().__init__() self.interval = interval self.method = method self.daemon = True def run(self): while True: logger.info(f'{self.method} is sleeping for: {self.interval}') time.sleep(self.interval) self.method() if self.method == show.logsomething: self.interval = random.randint(7, 10) if __name__ == '__main__': timer_one = 5 timer_two = 20 logger.info('Starting this thing...') show = Showme() timer1 = TimerThread(timer_one, show.logsomething) timer1.start() while True: time.sleep(timer_two)
Output:2023-10-15 01:47:58.799 | INFO | __main__:<module>:35 - Starting this thing...
2023-10-15 01:47:58.805 | INFO | __main__:run:26 - <bound method Showme.logsomething of Class Showme> is sleeping for: 5
2023-10-15 01:48:03.809 | INFO | __main__:logsomething:12 - Logging something...
2023-10-15 01:48:03.813 | INFO | __main__:run:26 - <bound method Showme.logsomething of Class Showme> is sleeping for: 9
2023-10-15 01:48:12.816 | INFO | __main__:logsomething:12 - Logging something...
2023-10-15 01:48:12.820 | INFO | __main__:run:26 - <bound method Showme.logsomething of Class Showme> is sleeping for: 8
2023-10-15 01:48:20.823 | INFO | __main__:logsomething:12 - Logging something...
2023-10-15 01:48:20.827 | INFO | __main__:run:26 - <bound method Showme.logsomething of Class Showme> is sleeping for: 9