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' ) |
初学linux,每学到一点东西就写一点,如有不对的地方,恳请包涵!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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 加持,客户体验更智能