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__))

 

posted @ 2017-02-24 09:54  wujf  阅读(472)  评论(0编辑  收藏  举报