# 时间 哪个文件里面的 第几行代码import loggingfrom logging import handlers

# logging.debug('debug级别,最低级别,一般开发人员用来打印一些调试信息')# logging.info('info级别,正常输出信息,一般用来打印一些正常的操作')# logging.warning('waring级别,一般用来打印警信息')# logging.error('error级别,一般用来打印一些错误信息')# logging.critical('critical级别,一般用来打印一些致命的错误信息')# 日志级别 debug < info < warning < error < critical# logging.basicConfig(level=logging.ERROR,#                     format='%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s',#                     filename='a.log',#                     filemode='a')# logging.debug('我是debug')# logging.info('我是info')# logging.warning('我是warning')# logging.error('我是error')# logging.critical('我是critical')

logger = logging.getLogger()  # 创建一个办公室logger.setLevel(logging.DEBUG)  # 设置日志级别# 一个往屏幕上输出 StreamHandler# 一个往文件写东西 TimedRotatingFileHandlerfmt = logging.Formatter('%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s')st = logging.StreamHandler()  # 实例化StreamHandler,相当于找一个人给你干活,往屏幕上输出# 第一个参数是文件名,第二个参数when是隔多久生成一个日志,backupCount就是保存几个日志文件th = handlers.TimedRotatingFileHandler(    'my.log', when='S', encoding='utf-8', backupCount=5)  # 实例化TimedRotatingFileHandler,相当于找一个人给你干活,往文件里面写东西st.setFormatter(fmt)th.setFormatter(fmt)logger.addHandler(st)logger.addHandler(th)logger.debug('my_log debug信息')logger.info('my_log info信息')logger.warning('my_log warning信息')logger.error('my_log error信息')logger.critical('my_log critical信息')

# param when: 分割日志的单位 S 秒、M 分、 H 小时、 D 天、 W 每星期(interval==0时代表星期一)、midnight 每天凌晨

封装日志
import loggingfrom logging import handlers

class Logger(object):    # 日志级别关系映射    level_relations = {        'debug': logging.DEBUG,        'info': logging.INFO,        'warning': logging.WARNING,        'error': logging.ERROR,        'crit': logging.CRITICAL    }

    def __init__(self, filename, level='info', when='D', back_count=3,                 fmt='%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s'):        self.logger = logging.getLogger(filename)        self.logger.setLevel(self.level_relations.get(level))  # 设置日志级别        format_str = logging.Formatter(fmt)        sh = logging.StreamHandler()        sh.setFormatter(format_str)        th = handlers.TimedRotatingFileHandler(filename=filename, when=when,                                               backupCount=back_count, encoding='utf-8')        th.setFormatter(format_str)        self.logger.addHandler(sh)        self.logger.addHandler(th)

if __name__ == '__main__':    log = Logger('nhy.log')    log.logger.debug('i的是100')    log.logger.info('开机')    log.logger.warning('警告 飞机没油了')    log.logger.error('错误 飞机要爆炸')

转载于:https://www.cnblogs.com/wangsilei/p/8572072.html

Python--日志模块相关推荐

  1. python日志模块方法_python日志模块logbook使用方法

    python自带了日志模块logging,可以用来记录程序运行过程中的日志信息.同时python还有logbook模块用来取代logging模块,在很多的项目中logbook模块使用也是比较的多,因此 ...

  2. python日志模块_Python之日志处理(logging模块)

    转载自:https://www.cnblogs.com/yyds/p/6901864.html 本节内容 日志相关概念 logging模块简介 使用logging提供的模块级别的函数记录日志 logg ...

  3. Django中间件与python日志模块 介绍

    一.Django中间件 1.1 介绍 Django中的中间件是一个轻量级.底层的插件系统,介于request与response处理之间的一道处理过程(用来处理特定业务的请求和响应).中间件的设计为开发 ...

  4. Python日志模块logging高级用法

    推荐图书: <Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),董付国,清华大学出版社,2020年6月第1次印刷,2021年12月第11次印刷,山东省一流 ...

  5. Python日志模块

    一.loguru的使用 Loguru 一个能彻底解放你的日志记录器. 它即插即用,具备多种方式滚动日志.自动压缩日志文件.定时删除等功能. 除此之外,多线程安全.高亮日志.日志告警等功能也不在话下. ...

  6. python 日志模块--python logbook使用方法

    python自带了日志模块logging,可以用来记录程序运行过程中的日志信息.同时python还有logbook模块用来取代logging模块,在很多的项目中logbook模块使用也是比较的多,因此 ...

  7. Python日志模块logging,这一篇就够了

    ​ 橙好科技logging模块教程 文章目录 1-logging介绍 2-日志作用 3-日志配置basicConfig 3-日志级别level 4-日志格式format 4-输出日志到控制台 5-输出 ...

  8. python ssl模块用法详解_一看就懂,Python 日志模块详解及应用!

    日志概述 百度百科的日志概述: Windows网络操作系统都设计有各种各样的日志文件,如应用程序日志,安全日志.系统日志.Scheduler服务日志.FTP日志.WWW日志.DNS服务器日志等等,这些 ...

  9. python 日志模块 logging

    如何使用python自带的 logging 模块实现日志功能 1.初始化一个logger对象 1)引入模块 import os import logging import sys 2)初始化变量,声明 ...

  10. Python 日志模块Loguru的使用

    Loguru 一个能彻底解放你的日志记录器. 它即插即用,具备多种方式滚动日志.自动压缩日志文件.定时删除等功能. 除此之外,多线程安全.高亮日志.日志告警等功能也不在话下. 下面就给大家介绍一下这个 ...

最新文章

  1. webGL的一些咨询--web3D
  2. Java项目:学生管理系统(java+Springboot+Maven+mybatis+Vue+Mysql)
  3. javascript 计算器、动态时钟、表格复选框全选(扩展)、轮播图、36选7、随机数...
  4. Vue——显示微信用户名称中enjoin表情
  5. mysql 并发避免锁表_MYSQL锁表的用法,防止并发情况下的重复数据
  6. 剑桥加密资产研究的主要发现 金评媒JPM 09-19 00:00 金评媒(https://www.jpm.cn)编者按:研究发现,全球有 1876 人在加密资产行业中工作。其中最多的是在亚太地区工作,
  7. js数组的声明与应用
  8. boost::contract模块实现是否constexpr的测试程序
  9. MySQL分组查询—添加筛选的总结
  10. {}企业如何才能实现多方位网络营销
  11. linux内核PID管理
  12. Mac Big Sur右上角时间变灰的解决方法
  13. 来自微信团队的6个开源项目
  14. 一个初学者的辛酸路程-函数-4
  15. linux版本i686,在Ubuntu中'i686'是什么意思? - Ubuntu问答
  16. 解决warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  17. kubernetes 非安全部署
  18. @RunWith注解找不到,怎么办?
  19. Simulink 3D Animation的使用(V_realm builder2.0)
  20. hdu1827 1269 2767 强连通分支 刷水

热门文章

  1. 图解c/c++多级指针与“多维”数组
  2. -bash: /bin/rm: Argument list too long的解决办法
  3. 陶哲轩实分析 定理 13.3.5 :紧致度量空间上的连续函数一致连续
  4. js 使用a标签 下载资源
  5. Elam的git笔记:(二)git的安装与基本操作介绍
  6. ABP理论学习之通知系统
  7. 36.intellij idea 如何一键清除所有断点
  8. Pycharm 建立工程,包含多个工程目录
  9. MySQL之主从切换
  10. (原)使用mkl计算特征值和特征向量