micropython-ulogger
micropython-ulogger copied to clipboard
the more handlers I add I get duplicate Log outputs
Hi, thanks for your great logging tool, i helps alot.
first i only used 2 handler (info, to_term and error, to_file) now i added two more to_term handlers and now i get duplicate logs on the terminal:
here my logutil.py:
# loguitl.py
import ulogger
from machine import RTC
import ntptime
import time
class Clock(ulogger.BaseClock):
def __init__(self):
self.rtc = RTC()
#try:
# ntptime.settime()
# print ('Time set: {}'.format(time.localtime()))
#except Exception as e:
# print(e)
# print ('NTP time set failed')
# return
def __call__(self) -> str:
# Format the datetime object as a string using strftime() method
y,m,d,wd,h,min,s,ms = self.rtc.datetime()
#return '%d-%d-%d %d:%d:%d' % (y,m,d,h,mi,s)
#Todo change to %F formatted string for better performance
return "%04d-%02d-%02d %02d:%02d:%02d" % (y,m,d,h,min,s)
clock = Clock()
handlers = (
ulogger.Handler(
level=ulogger.INFO,
colorful=True,
fmt="&(time)% - &(level)% - &(name)% - &(fnname)% - &(msg)%",
clock=clock,
direction=ulogger.TO_TERM,
),
ulogger.Handler(
level=ulogger.WARN,
colorful=True,
fmt="&(time)% - &(level)% - &(name)% - &(fnname)% - &(msg)%",
clock=clock,
direction=ulogger.TO_TERM,
),
ulogger.Handler(
level=ulogger.DEBUG,
colorful=True,
fmt="&(time)% - &(level)% - &(name)% - &(fnname)% - &(msg)%",
clock=clock,
direction=ulogger.TO_TERM,
),
ulogger.Handler(
level=ulogger.ERROR,
colorful=True,
fmt="&(time)% - &(level)% - &(name)% - &(fnname)% - &(msg)%",
clock=clock,
direction=ulogger.TO_FILE,
file_name="log.txt",
max_file_size=32768 # max for 4k
)
)
def get_logger(name: str):
return ulogger.Logger(name, handlers)
all = (get_logger)
from my different python tasks (i use a lot of async tasks) i get the logger like this:
log = logutil.get_logger("SMW")
log = logutil.get_logger("WEB")
....
all log.info are duplicated and all log.error and log.warn i get 3 times, for example my log output looks like this:
2024-06-08 08:58:46 - ERROR - WEB - handle_request - need more than 0 values 2024-06-08 08:58:46 - ERROR - WEB - handle_request - need more than 0 values 2024-06-08 08:58:46 - ERROR - WEB - handle_request - need more than 0 values
2024-06-08 08:58:51 - INFO - SMW - queue_data - TFS Event awaited 2024-06-08 08:58:51 - INFO - SMW - queue_data - TFS Event awaited
Any ideas why this is happening? Am i doing something wrong?