热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用Python2.7.6标准日志模块logging的基本示例

本文介绍了如何使用Python标准库中的logging模块进行日志记录,包括配置和基本用法。

Python 标准库中的 logging 模块提供了强大的功能来帮助开发者记录程序运行时的信息。通过使用 logging 模块,可以轻松地将日志信息输出到控制台或文件中,这对于调试和监控应用程序非常有用。



import logging

# 配置日志记录的基本设置
logging.basicConfig(
level=logging.DEBUG,
format='%(asctime)s [%(threadName)s] (%(filename)s:%(lineno)d) %(levelname)s - %(message)s',
datefmt='%Y-%m-%d %H:%M:%S',
filename='app_log.log'
)

# 记录不同级别的日志信息
logging.debug('这是一条调试信息')
logging.info('这是一条信息性消息')
logging.warning('这是一条警告消息')


上述代码配置了日志记录器,设置了日志级别为 DEBUG,并指定了日志格式和日期格式。日志信息将被记录到名为 app_log.log 的文件中。以下是 app_log.log 文件中的日志示例:



2015-03-11 15:54:34 [MainThread] (example.py:10) DEBUG - 这是一条调试信息
2015-03-11 15:54:34 [MainThread] (example.py:11) INFO - 这是一条信息性消息
2015-03-11 15:54:34 [MainThread] (example.py:12) WARNING - 这是一条警告消息


logging.basicConfig 函数参数详解:



































参数说明
filename指定日志文件的名称,用于创建 FileHandler 实例
filemode指定日志文件的打开模式,默认为 'a'(追加模式)
format定义日志消息的格式
datefmt定义日期/时间的格式
level设置日志记录的最低级别,级别顺序为 CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET
stream指定用于初始化 StreamHandler 的流对象,当同时指定了 filename 和 stream 参数时,filename 优先

logging 模块中的格式化符号:

































































符号说明
%(asctime)s日志记录的时间戳
%(filename)s源代码文件的名称
%(funcName)s调用日志记录函数的函数名
%(levelname)s日志级别名称
%(levelno)s日志级别的数值
%(lineno)d日志记录发生的代码行号
%(module)s源代码模块的名称
%(message)s实际的日志消息内容
%(name)s日志记录器的名称
%(pathname)s源代码文件的完整路径
%(process)d当前进程的 ID
%(processName)s当前进程的名称
%(thread)d当前线程的 ID
%(threadName)s当前线程的名称

推荐阅读
  • 实践指南:利用Jenkins与JMeter实现自动化测试报告通知
    本文详细介绍了如何结合Jenkins和JMeter工具,通过自定义脚本向用户发送测试报告的通知。这不仅提高了开发团队的工作效率,也确保了信息的及时传递。 ... [详细]
  • 本文介绍了如何在Anaconda3环境中正确安装TensorFlow和Keras框架,解决了默认环境缺乏所需库以及安装过程中常见的网络连接问题。通过创建特定Python版本的环境,并利用国内镜像加速下载,确保安装过程顺利。 ... [详细]
  • Python多进程环境中多参数函数的应用技巧
    当需要在一个多参数函数中,仅变动一个参数的值而保持其他参数固定时,可以通过使用偏函数(partial function)来实现这一目标。这种方法特别适用于多进程任务,避免了使用lambda表达式可能引起的序列化问题。 ... [详细]
  • Win10环境下Anaconda与Python 3.6的安装及Jupyter Notebook使用指南
    本文详细介绍了在Windows 10操作系统上安装Anaconda以及Python 3.6的步骤,并提供了Jupyter Notebook的基本使用方法,适合初学者快速入门。 ... [详细]
  • PyQt5结合QThread与ThreadPoolExecutor实现高效多任务处理
    本文探讨了如何利用PyQt5中的QThread模块解决用户界面在执行长时间操作时的卡顿问题,以及通过线程池ThreadPoolExecutor来优化多任务处理的效率。 ... [详细]
  • 本文详细介绍了中心方形数的概念及其计算方法,并提供了多种编程语言下的实现代码。 ... [详细]
  • 深入解析ASP.NET中的HttpHandler、HttpModule与IHttpHandlerFactory
    本文探讨了ASP.NET页面生命周期中的关键组件——HttpHandler、HttpModule和IHttpHandlerFactory的工作原理及其应用场景。通过实例分析,帮助读者更好地理解和利用这些组件来优化Web应用程序。 ... [详细]
  • 深入解析 Android 中的 ActivityGroup 实现
    本文详细探讨了如何在 Android 应用中使用 ActivityGroup 来实现类似微博客户端主界面的效果,并分析了 TabActivity 的局限性,推荐使用更为灵活的 ActivityGroup 方案。 ... [详细]
  • 本文详细介绍了Java编程语言中的关键字及其用途,包括53个关键字和2个保留字。文章不仅解释了每个关键字的基本功能,还提供了实际应用场景中的使用示例。 ... [详细]
  • django项目中使用手机号登录
    本文使用聚合数据的短信接口,需要先获取到申请接口的appkey和模板id项目目录下创建ubtils文件夹,定义返回随机验证码和调取短信接口的函数function.py文件se ... [详细]
  • 本文总结了在使用React Native开发过程中遇到的一些常见问题及其解决方法,包括配置错误、依赖问题和特定组件的使用技巧。 ... [详细]
  • Python安全实践:Web安全与SQL注入防御
    本文旨在介绍Web安全的基础知识,特别是如何使用Python和相关工具来识别和防止SQL注入攻击。通过实际案例分析,帮助读者理解SQL注入的危害,并掌握有效的防御策略。 ... [详细]
  • Apollo入门指南
    Apollo是一个分布式配置中心,由服务端和客户端组成,支持配置的集中管理和动态更新。 ... [详细]
  • PyQt5多线程UI更新示例及解析
    本文通过具体的代码示例,详细介绍了如何在PyQt5中利用多线程技术更新用户界面,避免因长时间操作导致的界面卡顿问题。该示例不仅有助于理解多线程机制,还为实际项目中的界面流畅性提供了有效解决方案。 ... [详细]
  • 本文探讨了在使用 ClickOnce 部署方式时遇到的自动更新失败问题,包括本地安装与服务器安装的不同表现,并提供了详细的解决方案。 ... [详细]
author-avatar
mobiledu2502853463
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有