一、logging日志模块等级
常见log级别从高到低:
CRITICAL 》ERROR 》WARNING 》INFO 》DEBUG,默认等级为WARNING,即>=WARNING级别的log才输出。
日志等级(level) 描述 CRITICAL 当发生严重错误,导致应用程序不能继续运行时记录的信息 ERROR 由于一个更严重的问题导致某些功能不能正常运行时记录的信息 WARNING 当某些不期望的事情发生时记录的信息(如,磁盘可用空间较低),但是此时应用程序还是正常运行的 INFO 信息详细程度仅次于DEBUG,通常只记录关键节点信息,用于确认一切都是按照我们预期的那样进行工作 DEBUG 最详细的日志信息,典型应用场景是 问题诊断
二、logging模块的使用方式介绍
logging模块提供了两种记录日志的方式:
- 第一种方式是使用logging提供的模块级别的函数
- 第二种方式是使用Logging日志系统的四大组件
其实,logging所提供的模块级别的日志记录函数也是对logging日志系统相关类的封装而已。
(1)logging模块定义的模块级别的常用函数
函数
说明
logging.debug(msg, *args, **kwargs)
创建一条严重级别为DEBUG的日志记录
logging.info(msg, *args, **kwargs)
创建一条严重级别为INFO的日志记录
logging.warning(msg, *args, **kwargs)
创建一条严重级别为WARNING的日志记录
logging.error(msg, *args, **kwargs)
创建一条严重级别为ERROR的日志记录
logging.critical(msg, *args, **kwargs)
创建一条严重级别为CRITICAL的日志记录
logging.log(level, *args, **kwargs)
创建一条严重级别为level的日志记录
logging.basicConfig(**kwargs)
对root logger进行一次性配置
其中logging.basicConfig(**kwargs)函数用于指定“要记录的日志级别”、“日志格式”、“日志输出位置”、“日志文件的打开模式”等信息,其他几个都是用于记录各个级别日志的函数。
(2)logging模块的四大组件
组件
说明
loggers
提供应用程序代码直接使用的接口
handlers
用于将日志记录发送到指定的目的位置
filters
提供更细粒度的日志过滤功能,用于决定哪些日志记录将会被输出(其它的日志记录将会被忽略)
formatters
用于控制日志信息的最终输出格式
三、自定义Logger模块类
# testLog1.py import logging import time class Logger(): def __init__(self, logger, level=logging.DEBUG): ''' : 自定义Logger模块类 : logger: logger名 : level: 日志级别 ''' # 创建一个logger self.logger = logging.getLogger(logger) self.logger.setLevel(level) # 定义handler的输出格式 curr_time = time.strftime("%Y-%m-%d") self.LogFileName = 'log' + curr_time + '.txt' fmt = logging.Formatter('%(asctime)s - %(filename)s:[%(lineno)s] - [%(levelname)s] - %(message)s') # asctime: 日志事件发生的时间 # filename: 源文件的名称部分,包含文件后缀 # lineno: 调用日志记录函数的源代码所在的行号 # evelname: 该日志记录的文字形式的日志级别 # message: 日志记录的文本内容 # 创建一个handler, 用于写入日志文件 fh = logging.FileHandler(self.LogFileName) fh.setLevel(logging.DEBUG) fh.setFormatter(fmt) # 再创建一个handler,用于输出到控制台 ch = logging.StreamHandler() ch.setLevel(logging.DEBUG) ch.setFormatter(fmt) # 给logger添加handler self.logger.addHandler(fh) self.logger.addHandler(ch) # level优先级 # logger.setLevel > handler.setLevel > logging.basicConfig if __name__ == "__main__": log = Logger(__name__, level=logging.DEBUG) log.logger.debug('debug') log.logger.log(logging.DEBUG, 'debug')# 执行testLog1.py,则控制台输出如下:2020-08-03 20:36:47,104 - testLog1.py:[117] - [DEBUG] - debug2020-08-03 20:36:47,104 - testLog1.py:[118] - [DEBUG] - debug# 日志文件记录如下:2020-08-03 20:36:15,982 - testLog1.py:[117] - [DEBUG] - debug2020-08-03 20:36:15,982 - testLog1.py:[118] - [DEBUG] - debug
# testLog2.py from testLog1 import Logger import traceback log = Logger(__name__) def func(): try: assert 1==2 except Exception: log.logger.info('测试失败,输出信息如下:{}'.format(traceback.format_exc())) # traceback.format_exc() 会返回异常信息的字符串 if __name__ == "__main__": func()# 执行testLog2.py,则控制台输出如下:2020-08-03 20:43:44,907 - testLog2.py:[11] - [INFO] - 测试失败,输出信息如下:Traceback (most recent call last): File "E:/imooc/testLog.py", line 9, in func assert 1==2AssertionError# 日志文件记录如下:2020-08-03 20:43:44,907 - testLog2.py:[11] - [INFO] - 测试失败,输出信息如下:Traceback (most recent call last): File "E:/imooc/testLog.py", line 9, in func assert 1==2AssertionError
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
Python,logging模块
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
- 【雨果唱片】中国管弦乐《鹿回头》WAV
- APM亚流新世代《一起冒险》[FLAC/分轨][106.77MB]
- 崔健《飞狗》律冻文化[WAV+CUE][1.1G]
- 罗志祥《舞状元 (Explicit)》[320K/MP3][66.77MB]
- 尤雅.1997-幽雅精粹2CD【南方】【WAV+CUE】
- 张惠妹.2007-STAR(引进版)【EMI百代】【WAV+CUE】
- 群星.2008-LOVE情歌集VOL.8【正东】【WAV+CUE】
- 罗志祥《舞状元 (Explicit)》[FLAC/分轨][360.76MB]
- Tank《我不伟大,至少我能改变我。》[320K/MP3][160.41MB]
- Tank《我不伟大,至少我能改变我。》[FLAC/分轨][236.89MB]
- CD圣经推荐-夏韶声《谙2》SACD-ISO
- 钟镇涛-《百分百钟镇涛》首批限量版SACD-ISO
- 群星《继续微笑致敬许冠杰》[低速原抓WAV+CUE]
- 潘秀琼.2003-国语难忘金曲珍藏集【皇星全音】【WAV+CUE】
- 林东松.1997-2039玫瑰事件【宝丽金】【WAV+CUE】