前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >logging还能这样用?

logging还能这样用?

作者头像
BigYoung小站
发布2020-05-04 21:32:29
2270
发布2020-05-04 21:32:29
举报
文章被收录于专栏:BigYoung小站BigYoung小站

大家在开发过程中,除了编写应有的项目代码,有时候需要记录相应的接口及数据操作记录。

你可以自己通过with open方法自己写入文件,进行记录。不过这方法较为麻烦,而且需要自己做好日志记录的格式等诸多问题。

还有一些开发经验丰富的人,可能会直接使用logging这个内置方法,进行日志记录,但是这个logging的方法又较为死板。这时我们想要做一些简单的定制时,就可以对logging 进行封装,比如把console输出的同时能够写入文件一份,以下代码就是,满足这个需求的自我定制版,大家可以看看。

代码语言:javascript
复制
import os
import time
import loggingclass Log(object):
   logger = None
   cur_path = os.path.dirname(os.path.realpath(__file__))
   log_path = os.path.join(cur_path, 'logs')
   log_format = '%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s'   # 如果路径不存在,就创建路径
   if not os.path.exists(log_path): os.mkdir(log_path)   file_name = '{}/{}.log'.format(log_path,time.strftime("%Y_%m_%d"))   def __init__(self, file_name=file_name, level=logging.INFO, name=__file__):
       # 设置 log格式和等级
       logging.basicConfig(format=self.log_format, level=level)
       console = logging.FileHandler(filename=file_name)
       console.setLevel(logging.INFO)
       formatter = logging.Formatter(self.log_format)
       console.setFormatter(formatter)       # 将定义好的console日志handler添加到root logger
       logging.getLogger('').addHandler(console)
       self.logger = logging.getLogger(name=name)   def get_logger(self):
       return self.logger
if __name__ == '__main__':
   log = Log().get_logger()
   log.info(msg="info测试信息")
   log.warning(msg="warning测试信息")

以上操作完时候,我们的会在此python文件同等路径下创建出一个log文件夹,文件夹下会有日志文件:xx-xx-xx.log文件。 欢迎

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-01-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 BigYoung小站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
日志服务
日志服务(Cloud Log Service,CLS)是腾讯云提供的一站式日志服务平台,提供了从日志采集、日志存储到日志检索,图表分析、监控告警、日志投递等多项服务,协助用户通过日志来解决业务运维、服务监控、日志审计等场景问题。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档