python log文件_Python logging基本使用
1、打印到控制台
#-*- coding: UTF-8 -*-
importloggingdeflogFileTest():
logging.debug('This is debug')
logging.warning('This is warning message')
logging.info('This is info')
logFileTest()
运行结果
WARNING:root:This is warning message
PS : 只有 logging.warning() 能打印输出到控制台,因为默认设置的等级是 warning,等级低于warning的都不会打印出来
2、配置默认等级后,打印到控制台
#-*- coding: UTF-8 -*-
importloggingdeflogBasicConfig():
logging.basicConfig(level=logging.DEBUG)
logging.debug('This is debug')
logging.warning('This is warning message')
logging.info('This is info')
logBasicConfig()
运行结果
DEBUG:root:This isdebug
WARNING:root:Thisiswarning message
INFO:root:Thisis info
PS : 日志级别: debug < info < warning < error < critical
3、保存到日志文件中,通过 logging.basicConfig() 设置
#-*- coding: UTF-8 -*-
importloggingdefsaveToLogFile():
logging.basicConfig(
filename= 'saveMessage.log', #保存文件路径
filemode= 'a',#保存方式,有 w 和 a 模式,默认不写为追加 a 模式
format= '%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s' #日志格式)
logging.warning('This is warning')
saveToLogFile()
运行结果
2019-08-27 14:00:58,463 - D:\E_DISK\product\eclipse\logFileDemo\src\com\logFileDemo.py[line:24] - WARNING: This is warning
PS : 这是 saveMessage.log 文件中生成的日志信息
如果在 logging.basicConfig() 设置 filename 和 filemode,则只会保存 log 到文件,不会输出到控制台
4、实现info信息记录到文件,error信息记录文件并在屏幕上输出,且实现日志回滚
保存10个文件,每个文件大小为1024*1024
需要注意该函数在一个工程中只能调用一次,否则写入信息会增加,比如调用两次该函数后log.info('aaa')文件中会有两次
因此我写了一个log = LogConfig.log()其他类使用时,用该log就行,有点像单例模式
重复写入问题可以参考https://blog.csdn.net/huilan_same/article/details/51858817
importlogging.handlersimportosclassLogConfig:def __init__(self):pass
#DEBUG,INFO,NOTICE,WARNING,ERROR,CRITICAL,ALERT,EMERGENCY
#如果是一个大工程,建议只调用一次,调用位置为主入口处。
@staticmethoddef log(log_name='logs/log.log', log_flag=True,
max_bytes=1024 * 1024, backup_count=10):
path=os.path.split(log_name)[0]if not os.path.isdir(path) and path != '':
os.makedirs(path) # 目录不存在则创建
log_handler=logging.getLogger(log_name)iflog_flag:#write log above info 为True记录INFO以及以上等级的日志
log_handler.setLevel(logging.INFO)else:#write log above error 为False记录ERROR以及以上等级的日志
log_handler.setLevel(logging.ERROR)
stream_handler=logging.StreamHandler() # 控制台日志句柄,设置则可以打印到控制台#is or not show to cmd console
stream_handler.setLevel(logging.WARN) # 设置打印到控制台日志等级为WARN以及以上
log_handler.addHandler(stream_handler) # 添加控制台句柄
# 设置回滚日志句柄
rollback_handler=logging.handlers.RotatingFileHandler(log_name,
maxBytes=max_bytes,
backupCount=backup_count)
log_format=logging.Formatter('[%(asctime)s][%(levelname)s]%(message)s') # 设置日志格式,时间,等级,信息
rollback_handler.setFormatter(log_format)
rollback_handler.setLevel(logging.INFO) # 设置回滚日志记录INFO以及以上信息
log_handler.addHandler(rollback_handler) # 添加回滚日志句柄returnlog_handler # 返回句柄,以便于使用
log=LogConfig.log() # 类似单例模式,只使用一次,不然会出现日志叠加情况if __name__ == '__main__':
log.info('444')
log.error('555')
python log文件_Python logging基本使用相关推荐
- python log日志_python脚本攻略之log日志
1 logging模块简介 logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级.日志保存路径.日志文件回滚等:相比print,具备如下优点: 可以通过设置不同 ...
- python写日志文件_Python logging日志模块 配置文件方式
在一些微服务或web服务中我们难免需要日志功能,用来记录一些用户的登录记录,操作记录,以及一些程序的崩溃定位,执行访问定位等等; Python内置 非常强大的日志模块 ==> logging 今 ...
- python log文件如何不写入syslog_python 自动化之路 logging日志模块
logging 日志模块 http://python.usyiyi.cn/python_278/library/logging.html 中文官方 http://blog.csdn.net/zyz51 ...
- python读取log文件_python文件读写(一)-txt, log, json, csv, xml文件
1.概述在平时自动化测试工作中,经常会用python对一些文件进行读写操作.其中使用最多的文件格式,就是txt, log, json, csv, xml, zip, tar, gz, ra ...
- python log文件如何不写入syslog_Centos下python 对syslog重写进行日志记录
在Linux 环境下,python自带一个syslog的模块可以进行日志记录.python可以利用logging模块来重写syslog,这样就可以自定义写入文件的文件名.如果不做配置则直接写入到/va ...
- python log日志_Python的log日志功能及设置方法
引入:Python中有个logging模块可以完成相关信息的记录,在debug时用它往往事半功倍 一.日志级别(从低到高): DEBUG :详细的信息,通常只出现在诊断问题上 INFO:确认一切按预期 ...
- python打开文件_python如何学习
1.Python 文件I/O 本章只讲述所有基本的 I/O 函数,更多函数请参考Python标准文档. 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式.此函 ...
- python遍历文件_python遍历目录文件脚本的示例
例子 自己写的一个Python遍历文件脚本,对查到的文件进行特定的处理.没啥技术含量,但是也记录一下吧. 代码如下 复制代码 #!/usr/bin/python # -*- coding: utf-8 ...
- python提取文件_Python文件读取常用方法
1. 关于读取文件 f.read() 读取文件中所有内容 f.readline() 读取第一行的内容 f.readlines() 读取文件里面所有内容,把每行的内容放到一个list里面 注:因为文件指 ...
最新文章
- Ubuntu 系统 Pycharm中无法使用中文输入法问题
- 报告 | 2019年全球数字化转型现状研究报告
- 数据库-null值和notnull操作
- JIT的Profile神器JITWatch
- 抑制java对修饰符的检查_Java 7对抑制异常的支持
- 移动端实现元素拖拽效果插件_基于自然流布局的可视化拖拽搭建平台设计方案...
- OC之protocol监听器的实现
- 写给小白的WordPress详细安装步骤
- 技术迭代快速。PyTorch 真的优于Tensorflow吗?
- 中小企业上云如何选择及操作
- java提高篇之理解java的三大特性——继承
- ORALCE 两表结构更新
- Python读取系统文件夹内所有文件并统计数量
- Camnetics Suite 2018 CamTrax64 GearTeq GearTrax for AI SE SW
- centos系统上安装masscan
- JavaScript日历1
- 关于Android的ImageView置顶
- axi_ddr_top
- java LPT1_com1/lpt1/prn/nul 木马后门处理方法集合
- 高等数学入门教程 — 自然底数e
热门文章
- 不再使用快捷方式打开电脑软件!如何Windows+r 来打开一个你想要打开的软件软件?
- YOLOv5在最新OpenVINO 2021R02版本的部署与代码演示详解
- 为增进理解力而奋斗终身
- linux云自动化运维基础知识23(DNS服务)
- Visual Studio 2017新版发布,极大提高开发效率丨附下载
- android java.lang.IllegalArgumentException: Comparison method violates its general contract! 问题
- PHP特级课视频教程_第二十八集 PHP搜索代码测试_李强强
- CXF做的webservice简单例子
- IT资产管理的演变原文-Generations of IT Asset Management
- mac redies install