码迷,mamicode.com
首页 > 编程语言 > 详细

python基础12--logging等模块

时间:2020-05-18 22:51:45      阅读:73      评论:0      收藏:0      [点我收藏+]

标签:and   运行   bsp   one   logging模块   写入内容   txt   模块   用户名   

logging模块:

技术图片
import logging
#日志级别:debug<info<warning<error<critical<NOTSET ,不设置等级默认是显示warning以上的级别
logging.debug("debug message")
logging.info("info message")
logging.warning("warning message")
logging.error("error nessage")
logging.critical("critical message")
#结果为
# WARNING:root:warning message
# ERROR:root:error nessage
# CRITICAL:root:critical message

#logging.basicConfig方式只能在屏幕显示或写入文件
logging.basicConfig( level = logging.DEBUG,  #设定logging级别
                     filename="logger.txt",  # 如无次参数,结果显示在屏幕上,加上参数生成一个文本,并把结果存入文本中
                     filemode="w",            # #文件默认是追加,改成写的模式,保证每次都是五条信息
                     format="%(asctime)s %(name)s  [%(lineno)d]  %(message)s")   #asctime(固定时间格式),name(用户名称),lineno(日志所在文件的行数),message(日志信息)
logging.debug("debug message")
logging.info("info message")
logging.warning("warning message")
logging.error("error nessage")
logging.critical("critical message")
#结果为
# DEBUG:root:debug message
# INFO:root:info message
# WARNING:root:warning message
# ERROR:root:error nessage
# CRITICAL:root:critical message


#logger方式能写入文件显示和在屏幕中显示
def logger():
    logger=logging.getLogger()
    fh=logging.FileHandler("logger_test")   #往文件中写入内容
    ch=logging.StreamHandler()     #往屏幕中显示内容
    fm=logging.Formatter("%(asctime)s  %(message)s  %(name)s")  #设定一个格式
    fh.setFormatter(fm)   #把fh,ch都应用成fm的格式
    ch.setFormatter(fm)
    logger.addHandler(fh)
    logger.addHandler(ch)
    return logger

logger=logger()     #直接调用logger函数
logger.setLevel("DEBUG")
logger.debug("debug message")
logger.info("info message")
logger.error("error nessage")
logger.warning("warning message")
logger.critical("critical message")



#补充:假设又logger、logger1、logger2三个对象,也是实现以上功能,当logger1(级别为debug)和logger2(级别为info)在getlogger时加上了同样的名字,相当于在root下面建了子用户--my logger,设定级别时
#按最低的显示(info),当logger(默认为root用户)和logger1(级别为debug)运行时,logger打印warning以上级别的信息,而logger1打印debug以上级别的信息,因为my logger用户是root用户的子用户,当logger
# 有运行,就会再打印一次给root用户。
View Code

 

python基础12--logging等模块

标签:and   运行   bsp   one   logging模块   写入内容   txt   模块   用户名   

原文地址:https://www.cnblogs.com/sakura-gyt/p/12913134.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!