logging日志模块

  1. 知识点很多 但是需要掌握的很少(会用即可)
  2. import logging
  3. # 日志有五个等级(从上往下重要程度不一样)
  4. # logging.debug('debug级别') # 10
  5. # logging.info('info级别') # 20
  6. # logging.warning('warning级别') # 30
  7. # logging.error('error级别') # 40
  8. # logging.critical('critical级别') # 50
  9. '''默认记录的级别在30及以上'''
  10. # 简单使用
  11. import logging
  12. file_handler = logging.FileHandler(filename='x1.log', mode='a', encoding='utf-8',)
  13. logging.basicConfig(
  14. format='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s',
  15. datefmt='%Y-%m-%d %H:%M:%S %p',
  16. handlers=[file_handler,],
  17. level=logging.ERROR
  18. )
  19. logging.error('日志模块很好学 不要自己吓自己')
  20. """
  21. 1.如何控制日志输入的位置
  22. 想在文件和终端中同时打印
  23. 2.不同位置如何做到不同的日志格式
  24. 文件详细一些 终端简单一些
  25. """

日志模块详细介绍

  1. import logging
  2. # 1.logger对象:负责产生日志
  3. logger = logging.getLogger('转账记录')
  4. # 2.filter对象:负责过滤日志(直接忽略)
  5. # 3.handler对象:负责日志产生的位置
  6. hd1 = logging.FileHandler('a1.log',encoding='utf8') # 产生到文件的
  7. hd2 = logging.FileHandler('a2.log',encoding='utf8') # 产生到文件的
  8. hd3 = logging.StreamHandler() # 产生在终端的
  9. # 4.formatter对象:负责日志的格式
  10. fm1 = logging.Formatter(
  11. fmt='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s',
  12. datefmt='%Y-%m-%d %H:%M:%S %p',
  13. )
  14. fm2 = logging.Formatter(
  15. fmt='%(asctime)s - %(name)s %(message)s',
  16. datefmt='%Y-%m-%d',
  17. )
  18. # 5.绑定handler对象
  19. logger.addHandler(hd1)
  20. logger.addHandler(hd2)
  21. logger.addHandler(hd3)
  22. # 6.绑定formatter对象
  23. hd1.setFormatter(fm1)
  24. hd2.setFormatter(fm2)
  25. hd3.setFormatter(fm1)
  26. # 7.设置日志等级
  27. logger.setLevel(30)
  28. # 8.记录日志
  29. logger.debug('写了半天 好累啊 好热啊')

配置字典

  1. # 核心就在于CV
  2. import logging
  3. import logging.config
  4. standard_format = '[%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name)s][%(filename)s:%(lineno)d]' \
  5. '[%(levelname)s][%(message)s]' #其中name为getlogger指定的名字
  6. simple_format = '[%(levelname)s][%(asctime)s][%(filename)s:%(lineno)d]%(message)s'
  7. logfile_path = 'a3.log'
  8. # log配置字典
  9. LOGGING_DIC = {
  10. 'version': 1,
  11. 'disable_existing_loggers': False,
  12. 'formatters': {
  13. 'standard': {
  14. 'format': standard_format
  15. },
  16. 'simple': {
  17. 'format': simple_format
  18. },
  19. },
  20. 'filters': {}, # 过滤日志
  21. 'handlers': {
  22. #打印到终端的日志
  23. 'console': {
  24. 'level': 'DEBUG',
  25. 'class': 'logging.StreamHandler', # 打印到屏幕
  26. 'formatter': 'simple'
  27. },
  28. #打印到文件的日志,收集info及以上的日志
  29. 'default': {
  30. 'level': 'DEBUG',
  31. 'class': 'logging.handlers.RotatingFileHandler', # 保存到文件
  32. 'formatter': 'standard',
  33. 'filename': logfile_path, # 日志文件
  34. 'maxBytes': 1024*1024*5, # 日志大小 5M
  35. 'backupCount': 5,
  36. 'encoding': 'utf-8', # 日志文件的编码,再也不用担心中文log乱码了
  37. },
  38. },
  39. 'loggers': {
  40. #logging.getLogger(__name__)拿到的logger配置 空字符串作为键 能够兼容所有的日志
  41. '': {
  42. 'handlers': ['default', 'console'], # 这里把上面定义的两个handler都加上,即log数据既写入文件又打印到屏幕
  43. 'level': 'DEBUG',
  44. 'propagate': True, # 向上(更高level的logger)传递
  45. }, # 当键不存在的情况下 (key设为空字符串)默认都会使用该k:v配置
  46. },
  47. }
  48. # 使用配置字典
  49. logging.config.dictConfig(LOGGING_DIC) # 自动加载字典中的配置
  50. logger1 = logging.getLogger('xxx')
  51. logger1.debug('好好的 不要浮躁 努力就有收获')

logging日志模块、配置字典的更多相关文章

  1. logging日志模块配置

    logging日志模块 日志级别 日志一共分成5个等级,从低到高分别是: 1)DEBUG 2)INFO 3)WARNING 4)ERROR 5)CRITICAL 说明: DEBUG:详细的信息,通常只 ...

  2. logging日志模块详细,日志模块的配置字典,第三方模块的下载与使用

    logging日志模块详细 简介 用Python写代码的时候,在想看的地方写个print xx 就能在控制台上显示打印信息,这样子就能知道它是什么 了,但是当我需要看大量的地方或者在一个文件中查看的时 ...

  3. logging日志模块的使用

    logging日志模块的使用 logging模块中有5个日志级别: debug 10 info 20 warning 30 error 40 critical 50 通常使用日志模块,是用字典进行配置 ...

  4. Python logging(日志)模块

    python日志模块 内容简介 1.日志相关概念 2.logging模块简介 3.logging模块函数使用 4.logging模块日志流处理流程 5.logging模块组件使用 6.logging配 ...

  5. pyhton——logging日志模块的学习

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

  6. 包,logging日志模块,copy深浅拷贝

    一 包 package 包就是一个包含了 __init__.py文件的文件夹 包是模块的一种表现形式,包即模块 首次导入包: 先创建一个执行文件的名称空间 1.创建包下面的__init__.py文件的 ...

  7. hashlib加密模块、logging日志模块

    hashlib模块 加密:将明文数据通过一系列算法变成密文数据 目的: 就是为了数据的安全 基本使用 基本使用 import hashlib # 1.先确定算法类型(md5普遍使用) md5 = ha ...

  8. logging 日志模块学习

    logging 日志模块,用于记录系统在运行过程中的一些关键信息,以便于对系统的运行状况进行跟踪,所以还是灰常重要滴,下面我就来从入门到放弃的系统学习一下日志既可以在屏幕上显示,又可以在文件中体现. ...

  9. python 自动化之路 logging日志模块

    logging 日志模块 http://python.usyiyi.cn/python_278/library/logging.html 中文官方http://blog.csdn.net/zyz511 ...

随机推荐

  1. *衡树 Treap(树堆) 学习笔记

    调了好几个月的 Treap 今天终于调通了,特意写篇博客来纪念一下. 0. Treap 的含义及用途 在算法竞赛中很多题目要使用二叉搜索树维护信息.然而毒瘤数据可能让二叉搜索树退化成链,这时就需要让二 ...

  2. mycat 简单介绍

    一.mycat? 1.为什么叫mycat 其实mycat在最早的初期版本只支持mysql一种数据库,换句话说mycat其实就是mysql的增强版 在mysql中只是数据库,并没有读写分离和分库分表,这 ...

  3. v76.01 鸿蒙内核源码分析(共享内存) | 进程间最快通讯方式 | 百篇博客分析OpenHarmony源码

    百篇博客分析|本篇为:(共享内存篇) | 进程间最快通讯方式 进程通讯相关篇为: v26.08 鸿蒙内核源码分析(自旋锁) | 当立贞节牌坊的好同志 v27.05 鸿蒙内核源码分析(互斥锁) | 同样 ...

  4. idea的jar文件,“java.lang.SecurityException: Invalid signature file digest for Manifest main attribute

    感谢大佬:https://blog.csdn.net/mingyuli/article/details/84674483 命令行运行jar出现问题: 1.找不到主类.打开jar文件包,在MANIFES ...

  5. sublime与python交互

    点击菜单栏中的工具 -> 编译系统,勾选Python即可 创建hello.py文件,Ctrl+S保存文件,Ctrl+B执行文件,结果如下图   3.sublime运行python文件的交互环境设 ...

  6. [源码解析] NVIDIA HugeCTR,GPU 版本参数服务器 --(1)

    [源码解析] NVIDIA HugeCTR,GPU版本参数服务器 --(1) 目录 [源码解析] NVIDIA HugeCTR,GPU版本参数服务器 --(1) 0x00 摘要 0x01 背景 1.1 ...

  7. 矩阵LU分解

    有如下方程组 ,当矩阵 A 各列向量互不相关时, 方程组有位移解,可以使用消元法求解,具体如下: 使用消元矩阵将 A 变成上三角矩阵 , , 使用消元矩阵作用于向量 b,得到向量 c,, , Ax=b ...

  8. Solution -「Gym 102956F」Find the XOR

    \(\mathcal{Description}\)   Link.   给定 \(n\) 个点 \(m\) 条边的连通无向图 \(G\),边有边权.其中 \(u,v\) 的距离 \(d(u,v)\) ...

  9. Solution -「NOI 2021」「洛谷 P7740」机器人游戏

    \(\mathcal{Description}\)   Link.   自己去读题面叭~ \(\mathcal{Solution}\)   首先,参悟[样例解释 #2].一种暴力的思路即为钦定集合 \ ...

  10. Solution -「多校联训」种蘑菇

    \(\mathcal{Description}\)   Link.   给定一棵含有 \(n\) 个结点的树,设 \(S\) 为其中的非空联通子集,求 \[\sum_{S}(\gcd_{u\in S} ...