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