Files
Mapo-IOB-WIN/IOB-WIN-PSER/IOB-TEST-ROTATE.py
T
2024-06-12 10:00:44 +02:00

77 lines
2.1 KiB
Python

import logging
import os, sys
import threading
import time
from datetime import datetime
from logging.handlers import RotatingFileHandler
BASE_PATH = os.path.dirname(__file__) + '\\'
LOGFILE='my_logger.log'
logPath = os.path.join(BASE_PATH, LOGFILE)
logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger('MainLog')
logCheck = logging.getLogger('CheckLog')
logTask = logging.getLogger('taskLog')
# gestore handler x logrotate
handler = RotatingFileHandler(logPath,
maxBytes=1024*16,
backupCount=10
)
# Define a custom formatter
formatter = logging.Formatter('%(asctime)s %(name)-8s %(levelname)-8s %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)
logCheck.addHandler(handler)
logTask.addHandler(handler)
#---------------------------------------------------------------
# funzione timer thread
#---------------------------------------------------------------
def do_every (interval, worker_func, iterations = 0):
if iterations != 1:
threading.Timer (
interval,
do_every, [interval, worker_func, 0 if iterations == 0 else iterations-1]
).start ();
worker_func ();
#---------------------------------------------------------------
# funzione verifica LOG
#---------------------------------------------------------------
def checkLog():
global LOGFILE
try:
# verifico logfile...
logCheck.info("verifica log")
# logPath = os.path.join(BASE_LOG_PATH, LOGFILE)
# fileSize = os.path.getsize(logPath)
except Exception as exc :
sys.stdout.write ( '\n errore in checkLog \n\n' )
#---------------------------------------------------------------
# funzione WatchDog verso REDIS
#---------------------------------------------------------------
def sendWatchDog():
# invio su redis stato
adesso = datetime.now()
logTask.debug('Invio a REDIS segnale watchdog')
do_every ( 0.2 , checkLog )
do_every ( 0.1 , sendWatchDog )
for _ in range(10000):
time.sleep (0.01)
logger.debug('Hello, world!')