77 lines
2.1 KiB
Python
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!') |