日志和正则表达式

import logging 这是记录系统一些信息的模块

记录日志的输出是有两种方式的

1 一种是在控制台中打印出日志

2 一种是在文件中打印出记录的日志

我们把这两种方式称之为句柄

在系统中的打印者是可以自己定义的,如果不 自己定义,就会使用系统自带的打印者.

不过我们一般都是自己定义一个打印者

在logging中打印的格式是随着自己想要的输出格式来定义格式化

logging 中的输出分为五种,他们本身是没有什么优先级的,都是通过我自己定义输出的

logging.debug("debug")
logging.info("info")
logging.warning("warning")
logging.error("error")
logging.critical("critical")

在打印者 和 句柄 和 输出的格式如下图中所画

logging模块

# 操作日志的模块
# 日志:日常的流水,将程序运行过程中的状态或数据进行记录,一般都是记录到日志文件中
# 在正常的项目中,项目运行的一些打印信息,采用looging打印到文件中,这个过程就称之为 记录日志import logging# logging为默认打印者,名字叫root,配置采用以下方式
h1 = logging.StreamHandler()
h2 = logging.FileHandler('d.log')
logging.basicConfig(# filename='my.log',# filemode='w',# stream=sys.stderr,  # 往控制台打印采用具体的输出流format='%(asctime)s [%(levelname)s]- %(name)s: %(message)s',datefmt='%Y-%m-%d %H:%M:%S',level=logging.DEBUG,  # 10, 代表DEBUG及DEBUG级别以上都能输出handlers=[h1, h2]
)logging.debug("debug")
logging.info("info")
logging.warning("warning")
logging.error("error")
logging.critical("critical")

多输出者

import logging
# 1.创建logger
log1 = logging.getLogger('Owen')
log2 = logging.getLogger('Zero')
r_log = logging# 2.logger设置级别
log1.setLevel(logging.DEBUG)# 3.设置句柄
h1 = logging.StreamHandler()# 4.设置句柄级别:
# 1)系统句柄默认级别warning,
# 2)自定义的句柄级别默认同logger,也可以在logger基础上在加以限制
h1.setLevel(logging.DEBUG)# 5.logger添加句柄
log1.addHandler(h1)# log1可以打印DEBUG以上的信息,但往不同位置打印,采用不同句柄的二次级别限制
h2 = logging.FileHandler('c.log')
h2.setLevel(logging.WARNING)
log1.addHandler(h2)log1.debug('debug')
log1.info('info')
log1.warning('warning')
log1.error('error')
log1.critical('critical')log2.critical('00000')r_log.critical('00000')

配置文件的使用

# 1.配置
LOGGING_DIC = {'version': 1,'disable_existing_loggers': False,'formatters': {'o_fmt1': {'format': '%(name)s:%(asctime)s - %(message)s'},'o_fmt2': {'format': '%(name)s:%(asctime)s [%(levelname)s] - %(message)s'}},'filters': {},'handlers': {'o_cmd': {'level': 'DEBUG','class': 'logging.StreamHandler','formatter': 'o_fmt1'},'o_file': {'level': 'WARNING','class': 'logging.handlers.RotatingFileHandler','formatter': 'o_fmt2','filename': r'F:\python8期\课堂内容\day20\代码\part4\logging.log',  # 日志文件'maxBytes': 1024*1024*5,  # 日志大小 5M'backupCount': 5, #日志文件最大个数'encoding': 'utf-8',  # 日志文件的编码
        }},'loggers': {'o_owen': {'level': 'DEBUG','handlers': ['o_cmd', 'o_file']},'o_zero': {'level': 'DEBUG','handlers': ['o_file']}}
}# 2.加载配置
import logging.config
logging.config.dictConfig(LOGGING_DIC)# 3.使用
log = logging.getLogger('o_owen')
log.warning('123')

re模块

# 正则:是有语法的字符串,用来匹配目标字符串的# 将目标字符串中的所以数字找出
data = '123abc呵呵'res = re.findall(r'\d', data)  # \d就代表数字
print(res)  # ['1', '2', '3']

转载于:https://www.cnblogs.com/WBaiC1/p/10841256.html

day20,日志和正则表达式相关推荐

  1. linux日志使用方法,Linux 日志终极指南

    原标题:Linux 日志终极指南 (点击上方公众号,可快速关注) 译者:伯乐在线 - 道法子 Linux 日志分析 虽然提取的时候,不总是和你想的一样简单,但是日志中有大量信息在等着你.在这部分,我们 ...

  2. Logtail 文件日志采集之完整正则模式

    前言 为了简化文件日志的采集过程,Logtail 提供了按行采集的极简模式:通过换行符来切分日志,每行作为一条日志.极简模式具有高效.配置简单等优势,但它将整条日志的内容作为整体,而不会对单条日志的内 ...

  3. 微服务架构日志集中化 安装 EFK (Fluentd ElasticSearch Kibana) 采集nginx日志

    本文描述如何通过FEK组合集中化nginx的访问日志.本人更喜欢按顺序来命名,所以使用FEK而不是EFK. 首先在nginx服务器上执行以下操作. 安装ruby http://blog.csdn.ne ...

  4. 日志间隔_在日志中搜索时间间隔

    日志间隔 介绍 这篇文章与我有关日志分析的迷你系列文章间接相关. 最好阅读两个主要部分,以更好地理解我在说什么. 第1 部分 , 第2部分 . 这篇文章描述了我在实现IDE方法时遇到的一个重要问题. ...

  5. 在日志中搜索时间间隔

    介绍 这篇文章与我有关日志分析的迷你系列文章间接相关. 最好阅读两个主要部分,以更好地理解我在说什么. 第1 部分 , 第2部分 . 这篇文章描述了我在实现IDE方法时遇到的一个重要问题. 任务描述 ...

  6. ZABBIX监控JAVA日志文件

    最近开发人员有一个需求,监控java程序的报错日志,如日志中包含"ERROR"关键字的信息,就邮件告警,以下是具体实现方法. 一.创建模板 以上是已经创建好的模板,名为" ...

  7. Python 分析Nginx 日志并存入MySQL数据库(单线程)

    使用Python 分析Nginx access 日志,根据Nginx日志格式进行分割并存入MySQL数据库.(参考网上一些文章) Nginx access日志格式如下: #使用的nginx默认日志格式 ...

  8. Linux日志怎么分析

    日志中有大量的信息需要你处理,尽管有时候想要提取并非想象中的容易.在这篇文章中我们会介绍一些你现在就能做的基本日志分析例子(只需要搜索即可).我们还将涉及一些更高级的分析,但这些需要你前期努力做出适当 ...

  9. logstash收集日志写入redis

    一.部署redis 1.下载redis [root@linux-node2 ~]# wget http://download.redis.io/releases/redis-4.0.6.tar.gz ...

  10. ELK日志处理之使用Grok解析日志

    一.简介 Grok是迄今为止使蹩脚的.无结构的日志结构化和可查询的最好方式.Grok在解析 syslog logs.apache and other webserver logs.mysql logs ...

最新文章

  1. 傅里叶变换的参考文档
  2. mysql索引与优化
  3. Git之深入解析如何重写提交历史
  4. redis存opc_Redis集群的三种模式
  5. git 可视化工具_Git的基本使用(二)
  6. 这样写Java,同事直呼666
  7. java图形界面关键字_怎样用Java编写一个图形界面,要求可以利用关键词查询txt中的内容...
  8. python机器学习案例系列教程——基于规则的分类器
  9. C#_基础_部分类partial(十八)
  10. android 对文件的读写,对android的/sys/文件进行读写操作
  11. 点击树形相应车型,置顶
  12. 怎么学习PLC技术?
  13. 死锁和哲学家就餐问题
  14. android获取路由器ip地址吗,查看路由器IP地址方法(管理后台地址)
  15. java vcf_Java VCF 格式解析
  16. 非线性优化汇总——Matlab优化工具箱(持续更新中)
  17. 前端JS获取ModelMap的值 2020-09-03
  18. 如何在jupyter notebook 中修改主题、字体、字号等
  19. 拍好人像的六个好招数
  20. 程序是怎么跑起来的——虚拟内存与动态链接

热门文章

  1. 为什么我们应该学马化腾,而不是马云
  2. 【数据处理】reshape2包
  3. 继“段友”之后,抖音也慌了?
  4. html 获取本机ip_爬取快代理免费ip,构建自己的代理ip池,不再怕反爬(附代码)...
  5. learning java AWT 布局管理器 GridLayout
  6. 基于卷积神经网络的人脸识别项目_使用Tensorflow-gpu+dilib+sklearn
  7. mac --snip 滚动截屏
  8. 【bzoj3514】Codechef MARCH14 GERALD07加强版
  9. [转帖]VMware时间不准问题的解决方法
  10. WPF 分享一种设置程序保存配置文件的方法