36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
import logging
|
|
import sys
|
|
import os
|
|
from logging.handlers import RotatingFileHandler
|
|
|
|
|
|
def setup_logging():
|
|
# Ensure the logs directory exists
|
|
log_directory = 'logs'
|
|
if not os.path.exists(log_directory):
|
|
os.makedirs(log_directory)
|
|
|
|
# Create handlers
|
|
file_handler = RotatingFileHandler(os.path.join(log_directory, 'iottb.log'), maxBytes=1048576, backupCount=5)
|
|
console_handler = logging.StreamHandler(sys.stdout)
|
|
|
|
# Create formatters and add it to handlers
|
|
file_fmt = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
|
|
console_fmt = logging.Formatter(
|
|
'%(asctime)s - %(levelname)s - %(filename)s:%(lineno)d - %(funcName)s - %(message)s')
|
|
|
|
file_handler.setFormatter(file_fmt)
|
|
console_handler.setFormatter(console_fmt)
|
|
|
|
# Get the root logger and add handlers
|
|
root_logger = logging.getLogger()
|
|
root_logger.setLevel(logging.DEBUG)
|
|
root_logger.addHandler(file_handler)
|
|
root_logger.addHandler(console_handler)
|
|
|
|
# Prevent propagation to the root logger to avoid duplicate logs
|
|
root_logger.propagate = False
|
|
|
|
|
|
setup_logging()
|