python工具之日志记录
1 ''' 2 写日志类 3 日志存放目录为当前应用程序的目录下的log目录中 4 日志产生规则:每小时产生一个文件 5 write by :wujf 6 2017-02-24 7 ''' 8 import sys 9 import os 10 import threading 11 import time 12 import traceback 13 14 mutex = threading.Lock() 15 # 标记是否为控制台输出 16 console = True 17 # console = False 18 19 20 class log: 21 def wirteFile(temp): 22 if mutex.acquire(): 23 # 这是里可以设置日志的文件生成规则 24 now = time.strftime( 25 '%Y%m%d%H', time.localtime(time.time())) + '.log' 26 path = os.path.join(sys.path[0], 'log') 27 if os.path.exists(path) == False: 28 os.mkdir(path) 29 filename = os.path.join(path, now) 30 fileHandle = open(filename, 'a', encoding='utf-8') 31 fileHandle.write(str(temp)) 32 fileHandle.close() 33 mutex.release() 34 35 # 写日志入口 36 def info(temp): 37 ''' 38 打印基本信息 39 ''' 40 now = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())) 41 temp = '====%s====\n%s\n' % (now, temp) 42 if console: 43 print(temp) 44 else: 45 threading.Thread(target=log.wirteFile, args=(temp,)).start() 46 # log.wirteFile(temp) 47 48 def error(ex): 49 ''' 50 打印异常信息 51 ''' 52 now = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())) 53 temp = '====%s====\n%s\n' % (now, traceback.format_exc()) 54 if console: 55 print(temp) 56 else: 57 threading.Thread(target=log.wirteFile, args=(temp,)).start() 58 # log.wirteFile(temp) 59 60 def recordPyInfo(): 61 ''' 62 记录执行的脚本信息 63 ''' 64 log.info(os.path.realpath(__file__))