logging模块

Posted xiaobaozi-95

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了logging模块相关的知识,希望对你有一定的参考价值。

 

logging模块

日志级别:debug,info,warning,error,critical

>>> logging.debug(test debug)
>>> logging.info(test info)
>>> logging.warning(test warning)
WARNING:root:test warning
>>> logging.error(test error)
ERROR:root:test error
>>> logging.critical(test critical)
CRITICAL:root:test critical

自定义日志输入位置,日志格式,级别等

import logging
logging.basicConfig(filename=test.log,level=logging.WARNING,format=%(asctime)s %(message)s,datefmt=%Y-%m-%d/%H:%M:%S)
logging.info(test info)
logging.warning(test warning)
logging.error(test error)

#结果:test.log: 2018-09-07/10:56:06 test warning 2018-09-07/10:56:06 test error


#filename 创建输出文件 #level 日志级别 大于或者等于该级别的才会记录 #format 定义日志格式 #datefmt 定义日期时间格式

 

把日志同时输出到屏幕和文件里

logger  提供应用程序可以调用的接口
handler  把logger创建的日志输出到合适的目标
filter     过滤 选择什么日志应该输出
formatter 指定日志输出格式

#生成logger
logger = logging.getLogger(TEST-LOG)
logger.setLevel(logging.WARNING)   #全局level.  跟局部的比,谁的level高就使用谁的
#输出到屏幕的handler
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)    #被全局覆盖
#输出到文件的handler
fh = logging.FileHandler(test.log)     
fh.setLevel(logging.ERROR)    # 没有被覆盖
#创建formatter
formatter = logging.Formatter(%(asctime)s - %(name)s - %(levelname)s - %(message)s)
#给ch fh两个handler加格式
ch.setFormatter(formatter)
fh.setFormatter(formatter)

logger.addHandler(ch)
logger.addHandler(fh)

logger.info(test info)
logger.debug(test debug)
logger.warning(test warning)
logger.error(test error)
logger.critical(test critical)

 







以上是关于logging模块的主要内容,如果未能解决你的问题,请参考以下文章

如何使用模块化代码片段中的LeakCanary检测内存泄漏?

我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情

python常用代码片段总结

前端开发常用js代码片段

vs code 自定义代码片段

如何有条件地将 C 代码片段编译到我的 Perl 模块?