python基础12--logging等模块
标签:and 运行 bsp one logging模块 写入内容 txt 模块 用户名
logging模块:
import logging
#日志级别:debug
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
评论