36 lines
1.2 KiB
Python
36 lines
1.2 KiB
Python
import json
|
|
import threading
|
|
import logging
|
|
from logging.handlers import RotatingFileHandler
|
|
from item_monitor import ItemMonitor
|
|
from worker import Worker
|
|
|
|
# Configure the console logger
|
|
console_handler = logging.StreamHandler()
|
|
console_handler.setLevel(logging.INFO)
|
|
console_handler.setFormatter(logging.Formatter('%(asctime)s - %(levelname)s - %(message)s'))
|
|
|
|
# Configure the file logger
|
|
file_handler = RotatingFileHandler('monitor.log', maxBytes=10e6)
|
|
file_handler.setLevel(logging.DEBUG)
|
|
file_handler.setFormatter(logging.Formatter('%(asctime)s - %(levelname)s - %(message)s'))
|
|
|
|
# Configure the root logger with both handlers
|
|
logging.basicConfig(level=logging.NOTSET,
|
|
handlers=[console_handler, file_handler])
|
|
|
|
def parse_items_to_monitor():
|
|
with open("args.json") as f:
|
|
args = json.load(f)
|
|
items = [ItemMonitor.load_from_json(item) for item in args]
|
|
return items
|
|
|
|
if __name__ == "__main__":
|
|
logger = logging.getLogger(__name__)
|
|
items = parse_items_to_monitor()
|
|
|
|
for item in items:
|
|
worker = Worker(item)
|
|
thread = threading.Thread(target=worker.run)
|
|
thread.start()
|