python logging日志模块

  1.导入模块

1
>>> import logging

  2.五种日志级别

1
2
3
4
5
6
7
8
9
10
11
12
13
#输出时默认只显示警告级别以上的信息,可以使用basicConfig的level参数更改
>>> logging.basicConfig(level=logging.DEBUG)
... logging.debug('调试')
... logging.info('信息')
... logging.warning('警告')
... logging.error('错误')
... logging.critical('崩溃')
 
DEBUG:root:调试
INFO:root:信息
WARNING:root:警告
ERROR:root:错误
CRITICAL:root:崩溃

  3.baseConfig()可选参数

1
2
3
4
5
filename:跟文件名,日志将记录在文件内,指定之后就不会在控制台显示
filemode:文件打开方式,默认为'a'
format:指定日志记录格式
datefmt:指定日期时间格式。
level:设置显示的日志级别

  4.日志记录格式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
%(name)s 哪个用户
%(levelno)s 数字形式的日志级别
%(levelname)s 文本形式的日志级别
%(filename)s 调用函数所在文件名
%(module)s 调用日志输出函数的模块名
%(lineno)d 调用函数所在的行
%(asctime)s 字符串形式的当前时间。
%(message)s 用户输出的消息
%(funcName)s 函数名称
%(process)s 进程ID
%(thread)s 线程ID
%(processName)s 进程名称
%(threadName)s 线程名称
 
示例
logging.basicConfig(level=logging.DEBUG,
                    format='%(asctime)s %(filename)s line:%(lineno)d [%(levelname)s] %(message)s',
                    datefmt='%Y-%m-%d %H:%M:%S')
logging.error('111')
2019-09-17 13:51:33 测试专用.py line:15 [ERROR] 111

  5.在控制台和文件中同时输出日志

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#导入模块
import logging
 
#创建日志文件助手和屏幕显示文件助手
filehandler = logging.FileHandler('python.log',encoding='utf-8')
streamhandler = logging.StreamHandler()
 
#指定日志输出格式,可以指定多个,绑定时可以分别绑定
format = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
 
#将日志格式绑定到助手
filehandler.setFormatter(format)
streamhandler.setFormatter(format)
 
#创建一个logger对象
logger = logging.getLogger()
 
#将两个助手添加到logger对象中
logger.addHandler(filehandler)
logger.addHandler(streamhandler)
 
#设置日志显示级别
logger.setLevel(logging.DEBUG)
#filehandler.setLevel(logging.DEBUG)   可以单独设置级别
#streamhandler.setLevel(logging.ERROR)
 
#输出日志就可以在文件和控制台中同时显示了
logger.error('casadasdasd')

  

  

  

posted @   ForLivetoLearn  阅读(181)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
点击右上角即可分享
微信分享提示