import sys import re import os import time import traceback import win32api import pprint from pprint import pprint as pp # pretty print import logging import logging.handlers import socket #import win32serviceutil #import win32service #import win32event #import win32api #import win32wnet #import win32crypt #import win32netcon _scriptfile = sys.argv[0] _scriptpath = os.path.abspath( _scriptfile ) _scriptdir = os.path.dirname( _scriptpath ) _scriptname = os.path.splitext( os.path.basename( _scriptpath ) )[0] LOGDIR = os.path.join( _scriptdir, 'logs' ) if not os.path.isdir( LOGDIR ): os.makedirs( LOGDIR ) LOGFILENAME = _scriptname + '.log' LOGFILEPATH = os.path.join( LOGDIR, LOGFILENAME ) def initlog(): #h = logging.FileHandler( LOGFILEPATH, 'a' ) h = logging.handlers.TimedRotatingFileHandler( LOGFILEPATH, 'M', 2, 7 ) h.setLevel( logging.DEBUG ) f = logging.Formatter( '%(asctime)s %(levelname)s %(message)s', '%Y-%m-%d %H:%M:%S' ) h.setFormatter( f ) logging.root.addHandler( h ) logging.root.setLevel( logging.DEBUG ) def now(): return time.ctime( time.time() ) dryrun = True cancelled = False def testlog(): initlog() try: logging.info( '-' * 79 ) logging.info( 'starting on %s', socket.gethostname() ) global cancelled while not cancelled: try: logging.debug( 'scheduling next rescan at %s', time.ctime( time.time() + 10 ) ) time.sleep( 10 ) logging.debug( 'rescanning' ) except KeyboardInterrupt: cancelled = True except: logging.exception( 'error scanning' ) logging.debug( 'scheduling next retry at %s', time.ctime( time.time() + 10 ) ) time.sleep( 10 ) #sys.exit( 1 ) finally: logging.info( 'ending' ) if __name__ == '__main__': testlog()