博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python loggin日志模块
阅读量:5324 次
发布时间:2019-06-14

本文共 3026 字,大约阅读时间需要 10 分钟。

handler 日志输出
formatter格式化
logging模块介绍与使用
python使用logging模块记录日志涉及四个主要类:每个类的用法功能如下:
logger提供了应用程序可以直接使用的接口
handler将(logger创建的)的日志记录发送到合适的目的地输出
setLevel提供了细度设备来决定输出哪种级别的日志记录
formatter决定日志记录的最终输出格式
 
logging是什么,作用是什么
logging 是python一个自带的日志模块
他的作用主要是有两个:
1)代替print 可以把大部分你想要进行调试的信息打印出来或者是输出到指定文件
2)可以对一些输出的调试信息分类做输出:比如说DEBUG INFO WARNING ERROR CRITICAL
#导入
import logging
日志一共有这几种级别:DEBUG INFO WARNING ERROR CRITICAL
你要把你的信息设置为不同的级别,可以用以下几种方式
logging.info("    ")
logging.debug( "  ")
logging.warning("  ")
logging.error("  ")
logging.critical("   ")
日志用在哪里   
任何你想用的地方 日志就是操作记录,你想输出到哪里就输出到哪里
critical>error>warning>info>debug,notset
级别越高打印的日志越少
debug:打印全部的日志(noteset等同于debug)
info :打印info warning error critical级别的日志
warning:打印warning error critical级别的日志
error:打印error critical级别的日志
critical 打印critical级别的日志
 
logging模块Handler
StreamHandler
日志信息会输出到指定的stream中,如果stream为空则默认输出到sys.stderr,即控制台
 
FileHandler
继承自StreamHandler,将日志信息输出到磁盘文件上
默认情况下,日志文件可以无限增大
 
logging模块中的handlers模块专门用来处理日志输出的
位于logging.handlers'
常用handlers
RotatingFileHandler:支持循环日志文件
maxBytes:允许日志文件在达到maxBytes市rollover,当文件大小达到或者超过maxBytes时,就会新创建一个日志文件
backupCOunt:备份数目,也就是最多能有多少个文件,明明会在日志的base_name后面加上.0-.n的后缀。如果超过指定的文件数目,会从头覆盖
TimeRotatingFileHandler 在RotatingFileHandler的基础上,支持定时生成新的日志文件
when:时间间隔的类型
 
 
 
import logging
 
logger=logging.getLogger("excel") #实例化创建自己的logger对象
logger.setLevel(logging.INFO) #设置日志输出级别,str或int型
 
 
#Formatter日志的输出格式  #创建时间,级别名字,文件名字,函数名字,哪一行,输出的消息
fmt="%(asctime)s %(levelname)s %(filename)s %(funcName)s [line:%(lineno)d] %(message)s"
datefmt='%a, %d %b %Y %H:%M:%S'  #输出的时间格式
formate=logging.Formatter(fmt,datefmt) #formatter是logging下面一个类  传参
 
#Handler
#输出到控制台
handler_1=logging.StreamHandler() #默认的话输出到控制台  类需要初始化
handler_1.setFormatter(formate)  #设置输出格式
logger.addHandler(handler_1)  #把输出地址,输出格式绑定到我自己的日志输出对象logger下面
 
# 输出到文件  运行后会在当前文件夹下创建换一个文件写入
handler_2=logging.FileHandler("mylog.log") #给一个文件名会默认按追加的模式往里面写内容
handler_2.setFormatter(formate)
logger.addHandler(handler_2)
 
 
 
# logger.error("this is error")
# logger.debug("this is debug")
# logger.critical("critical")
# for index in range(100):
#    logger.error("this is error")
 
# 输出内容
# Wed, 06 Dec 2017 22:28:33 INFO logging note.py <module> [line:19] 11111111111111111111111111
# Wed, 06 Dec 2017 22:28:33 ERROR logging note.py <module> [line:20] this is error
# Wed, 06 Dec 2017 22:28:33 CRITICAL logging note.py <module> [line:22] critical
 
# RotatingFileHandler   1024=1kb  1024*1024=1M
from logging.handlers import RotatingFileHandler,TimedRotatingFileHandler  #导入模块
import os
handler_3=RotatingFileHandler(os.getcwd()+"/mylog/mylog.log",maxBytes=1024,backupCount=5) #给一个文件名会默认按追加的模式往里面写内容
handler_3.setFormatter(formate) #配置输出格式
logger.addHandler(handler_3)
for index in range(100):
   logger.error("this is error")
 
handler_4=TimedRotatingFileHandler(os.getcwd()+"/mylog/mylog.log",when="s",interval=1,backupCount=5) #给一个文件名会默认按追加的模式往里面写内容
handler_4.setFormatter(formate) #配置输出格式
logger.addHandler(handler_4)
for index in range(100):
   logger.error("this is error")
 
 

转载于:https://www.cnblogs.com/nuonuozhou/p/8645151.html

你可能感兴趣的文章
大神教你如何解决Linux系统80端口被占用
查看>>
VIM GDB操作
查看>>
七、context command
查看>>
Android中ListView的用法及优化
查看>>
JavaScript基本包装类介绍
查看>>
Objective-C设计模式——工厂方法模式virtual constructor(对象创建)
查看>>
glibc-commons 依赖解析 版本错误,xxx is duplicate yyy
查看>>
html5 简单五子棋
查看>>
函数调用的区别:_cdecl以及_stdcall
查看>>
smartctl工具学习网站
查看>>
hdu 3732
查看>>
Persistent services in Android[服务不被终止]
查看>>
highcharts的柱状图边线
查看>>
来吧学学.Net Core之项目文件简介及配置文件与IOC的使用
查看>>
字符串类的扩展
查看>>
路由系统和模板基础
查看>>
SQL学习笔记(基本语法)
查看>>
app 进入后台进行模糊处理
查看>>
缓存使用场景
查看>>
fatal error: error writing to /tmp/ccXIKnDg.s: No space left on device
查看>>