logging模块
Posted whylinux
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了logging模块相关的知识,希望对你有一定的参考价值。
# logging模块 # 日志模块 # 日志 # 日志用来记录用户行为的,有没有错都要记录下来 # 或者记录代码的执行过程的时候,我们需要记录下来 # 排错的时候需要打印很多细节来帮助我们排错时,我们需要记录下来 # 严重的错误应该记录下来 # 在logging模块中有5个级别, 默认只输出info以上的级别不包括info级别 # import logging # logging.debug(‘debug message‘) # 低级别 排错信息 # logging.info(‘info message‘) # 正常的信息 # logging.warning(‘warning message‘) # 警告嘻嘻 # logging.error(‘error message‘) # 错误信息 # logging.critical(‘critical message‘) # 高级别 # 严重错误信息 # 可以通过配置的方式使logging日志输出的信息更好看 # 两种配置日志的方式 # basicconfig 用法简单,能做的事情相对少 # 缺点 # 记录到日志文件中时,解决不了中文的乱码问题 # 不能同时往文件和屏幕上输出 # 配置log对象 用户比较复杂,能做的事情相对多 # 配置日志logging, level=loggin.DEBUG,配置debug级别以上的信息都输出。 NOTSET = 0为最低 # format,格式化,asctime 是时间,对应datefmt。 filename是文件名字,对应filename。lineo是多少行。levelname是等级。message是信息内容 # # import logging # print(‘%(key)s‘ % {‘key‘ : ‘value‘}) # value # logging.basicConfig(level = logging.DEBUG, # format = ‘%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s‘, # datefmt = ‘%a, %d %b %Y %H:%M:%S‘, # filename = ‘test.log‘, # filemode = ‘a‘) # # logging.debug(‘debug message‘) # 低级别 排错信息 # logging.info(‘info message‘) # 正常的信息 # logging.warning(‘warning message‘) # 警告嘻嘻 # logging.error(‘error message‘) # 错误信息 # logging.critical(‘critical message‘) # 高级别,基于操作系统级别的信息了 # 严重错误信息 # # # 例,输入值错误,异常处理后,将错误输出到日志中 # try: # int(input(‘num >>>‘)) # except ValueError: # logging.error(‘input ValueError‘) # basicConfig缺点 # 记录到日志文件中时,解决不了中文的乱码问题 # 不能同时往文件和屏幕上输出 # 所以一般不用logging中的basicConfig来记录日志 # 此种日志为灵活,充分解耦,比较常用 import logging logger = logging.getLogger() # 创建一个logger对象 # 创建一个handler,用于写入日志文件 fh = logging.FileHandler(‘test2.log‘, encoding=‘utf-8‘) # 创建一个文件描述符 # 再创建一个handler,用于输出到控制台 ch = logging.StreamHandler() # 在创建一个控制台的文件秒速福 formatter = logging.Formatter(‘%(asctime)s - %(name)s - %(levelname)s[line:%(lineno)d] -%(message)s‘) # 设置输出格式化的格式 #formatter = logging.Formatter(‘%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s‘, # datefmt = ‘%a, %d %b %Y %H:%M:%S‘) fh.setLevel(logging.DEBUG) # 设置输出等级 # 文件操作符和格式关联 fh.setFormatter(formatter) # 设置日志文件(文件描述符)为该格式输出 ch.setFormatter(formatter) # 设置控制台(文件描述符)为该格式输出 # logger对象和文件操作符关联绑定 logger.addHandler(fh) # logger对象可以添加多个fh和ch对象 将日志操作符绑定到logger中 logger.addHandler(ch) # 将控制台操作符绑定到logger中 logger.debug(‘logger debug message‘) logger.info(‘logger info message‘) logger.warning(‘logger warning message‘) logger.error(‘logger error message‘) logger.critical(‘logger critical message‘) # 例,输入值错误,异常处理后,将错误输出到日志中 try: int(input(‘num >>>‘)) except ValueError: logger.error(‘input ValueError‘) # zabbix 比较好的监控系统
以上是关于logging模块的主要内容,如果未能解决你的问题,请参考以下文章
如何使用模块化代码片段中的LeakCanary检测内存泄漏?
我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情