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 @   wujf  阅读(474)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
历史上的今天:
2016-02-24 dapper关联关系查询小测试
2016-02-24 mysql空间数据相关操作
点击右上角即可分享
微信分享提示