Python学习系列之logging模块
实例一:日志写进一个文件
代码:
import logging logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s %(filename)s [line:%(lineno)d] %(levelname)s %(message)s', #定义日志格式
datefmt='%Y-%m-%d %H:%M:%S %p', #定义asctime
filename='test.log', #定义日志文件
filemode='a') #定义写入模式,'a'是追加的意思 login():
while True:
try:
name = input('Input user name:')
password = int(input('Input password:')) #这里故意转成整型,触发异常
if name == 'andy' and password == 'nopasswd':
print('logging succeed!')
except ValueError as e:
logging.info(e) #这里写入日志
break if __name__ == '__main__':
login()
format解释:
- asctime:时间,按照datefmt定义的显示,2018-01-10 14:50:25
- filename:报错的python文件名称
- line:%(lineno)d:报错的行数
- levelname:报错级别
- message:报错的信息
测试:
[root@admin_bak shell]# python3.6 test_log.py
Input user name:asdasd
Input password:asdsad #这是输入字符串,触发异常
查看日志
2018-01-10 11:54:40 AM test_log.py test_log.py[line:21] DEBUG invalid literal for int() with base 10: 'asdsad'
实例二:实现每天一个日志文件
代码:
import time import logging
import logging.handlers LOG_FILE = "ping.log" #设置日志文件名称
logger = logging.getLogger() #实例化logging
logger.setLevel(logging.INFO) #设置日志级别 #添加TimedRotatingFileHandler
#定义一秒换一次log文件的handlers
#保留3个旧log文件
fh = logging.handlers.TimedRotatingFileHandler(LOG_FILE, when='D', interval=1, backupCount=10)
#定义asctime
datefmt = '%Y-%m-%d %H:%M:%S'
#定义日志格式
format_str = '%(asctime)s %(filename)s [line:%(lineno)d] %(levelname)s %(message)s'
formatter = logging.Formatter(format_str, datefmt)
fh.setFormatter(formatter)
logger.addHandler(fh) while True:
time.sleep(0.1)
logging.info("test")
TimedRotatingFileHandler
TimedRotatingFileHandler(filename [,when [,interval [,backupCount]]])#需要传的参数
filename:日志文件
when:
"S":second
"M":minutes
"H":Hours
"D":Days
"W":week day (0=monday)
interval:是指等待多少个"when"时间后,logging会自动新建文件,比如when='S',interval=10,就是10个一秒后新建文件,也就是10秒,when='D',interval=1,就是一天一个文件
backupCount:保留日志文件的个数
Python学习系列之logging模块的更多相关文章
- Python学习系列(六)(模块)
Python学习系列(六)(模块) Python学习系列(五)(文件操作及其字典) 一,模块的基本介绍 1,import引入其他标准模块 标准库:Python标准安装包里的模块. 引入模块的几种方式: ...
- Python学习系列(九)(IO与异常处理)
Python学习系列(九)(IO与异常处理) Python学习系列(八)( 面向对象基础) 一,存储器 1,Python提供一个标准的模块,称为pickle,使用它既可以在一个文件中存储任何Pytho ...
- Python学习系列(七)( 数据库编程)
Python学习系列(七)( 数据库编程) Python学习系列(六)(模块) 一,MySQL-Python插件 Python里操作MySQL数据库,需要Python下安装访 ...
- Python学习系列(五)(文件操作及其字典)
Python学习系列(五)(文件操作及其字典) Python学习系列(四)(列表及其函数) 一.文件操作 1,读文件 在以'r'读模式打开文件以后可以调用read函数一次性将文件内容全部读出 ...
- Python学习系列(四)Python 入门语法规则2
Python学习系列(四)Python 入门语法规则2 2017-4-3 09:18:04 编码和解码 Unicode.gbk,utf8之间的关系 2.对于py2.7, 如果utf8>gbk, ...
- Python学习系列(八)( 面向对象基础)
Python学习系列(八)( 面向对象基础) Python学习系列(七)( 数据库编程) 一,面向对象 1,域:属于一个对象或类的变量.有两种类型,即实例变量—属于每个实例/类的对象:类变量—属于类 ...
- Python学习系列(四)(列表及其函数)
Python学习系列(四)(列表及其函数) Python学习系列(一)(基础入门) Python学习系列(二)(基础知识) Python学习系列(三)(字符串) 一.基本概念 1,列表是什么? ...
- Python学习系列(三)(字符串)
Python学习系列(三)(字符串) Python学习系列(一)(基础入门) Python学习系列(二)(基础知识) 一个月没有更新博客了,最近工作上有点小忙,实在是没有坚持住,丢久又有感觉写的必要了 ...
- Python学习系列(二)(基础知识)
Python基础语法 Python学习系列(一)(基础入门) 对于任何一门语言的学习,学语法是最枯燥无味的,但又不得不学,基础概念较繁琐,本文将不多涉及概念解释,用例子进行相关解析,适当与C语言对比, ...
随机推荐
- 五:SQL语句中的数据类型
一:MySQL数据类型 MySQL中定义数据字段的类型对你数据库的优化是非常重要的 MySQL支持多种数据类型,大致可以分为三类:数值 日期/时间和字符串 二.数值类型(12) 2.1.整数类型(6) ...
- wei UI使用
1.前言 通过前面系列文章的学习与讲解,相信大家已经对微信的开发有了一个全新的认识.后端基本能够基于盛派的第三方sdk搞定大部分事宜,剩下的就是前端了.关于手机端的浏览器的兼容性问题相信一直是开发者们 ...
- 【11】specified value,computed value,used value计算方法
[11]specified value,computed value,used value计算方法 specified value(规范值): 计算方法如下: 如果样式表设置了一个值,使用这个值 如果 ...
- WordPress添加前台注册功能
一.添加注册表单 1.首先在当前主题的目录下新建一个php文件,命名为reg-page.php,然后将page.php中的所有代码复制到reg-page.php中: 2.删除reg-page.php开 ...
- OSPF 提升 三 type of Areas
ospf ccnp 三 上图中 rip域中的不连续的100条路由 在a1中导致LSDB太大 在保证网段的可达性的前提下 尽可能减少区域内路由器的lsdb 可以将a1设置 ...
- 【LeetCode】Game of Life(生命游戏)
这道题是LeetCode里的第289道题. 题目描述: 根据百度百科,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在1970年发明的细胞自动机. 给定一个包含 m × n 个格子的面板,每一个格 ...
- haskell 乱搞(2)之 Y-conbinator [原创]
Y-conbinator"有没有用"?并没有,在大多数支持函数式编程的语言里,你可以自由的使用递归,而这货只是作为理论基石弥散在函数式编程的血肉之中 这是数学笔记,这是数学笔记,这 ...
- weixin-api生成二维码
二维码长链接转成短链接(减少扫描时间和提高成功率) 微信返回正确的二维码的结果,参数有个url,即二维码图片解析后的地址,也可以根据此URL生成需要的二维码图片,而不需要通过ticket去换取图片了 ...
- msp430项目编程42
msp430综合项目---无线通信直流电机调速系统42
- db2数据备份与恢复
备份:先关掉所有tomcat运行:db2cmd db2Stop force db2Start DB2 FORCE APPLICATIONS ALL DB2 BACKUP DATABASE histes ...