专栏首页BigYoung小站logging还能这样用?

logging还能这样用?

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

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

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

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文件。 欢迎

本文分享自微信公众号 - BigYoung小站(bigyoungs),作者:Young文人

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-01-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【CentOS】配置网络yum源遇到的问题之解决办法

    我配置的是yum源是:wget http://mirrors.sohu.com/help/CentOS-Base-sohu.repo

    BigYoung小站
  • Django-auth-ldap 配置方法

    公司内部使用Django作为后端服务框架的Web服务,当需要使用公司内部搭建的Ldap 或者 Windows 的AD服务器作为Web登录认证系统时,就需要这个D...

    BigYoung小站
  • Disable-Mailbox命令使用方法

    员工离职后,为了禁止员工登录邮箱,造成不必要的麻烦,所以需要禁用离职员工的Exchange账户。

    BigYoung小站
  • (19/24) webpack实战技巧:推荐使用的第三方类库打包方法

    在日常的开发中,总避免不了引入第三方的框架,比如常用的JQuery,此节我们来学习一下如何优雅并正确的用webpack引入第三方库。

    wfaceboss
  • Python日志处理logging模块

    logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等。

    用户5521279
  • Spring周边:日志——中

    门面设计模式是面面向对象设计模式中的一种,日志框架采用的就是这种模式,类似JDBC的设计理念。它只提供一套接口规范,自身不负责日志功能的实现,目的是让使用者不需...

    WEBJ2EE
  • .Net cache与cache更新

    FlyLolo
  • 萝莉有话说:你的App真正适配了iOS 9吗?

    时隔三月,如隔三秋。越过层层文档,穿过条条代码,小萝莉终于又和大家见面了!用户朋友们,我想死你们了!当然萝莉来此,并不是来和大家聊春晚的,我们的主题依旧是iOS...

    腾讯Bugly
  • Spring通过XML配置文件以及通过注解形式来AOP 来实现前置,后置,环绕,异常通知

    AOP是Aspect Oriented Programming的缩写,意思是面向方面编程,AOP实际是GoF设计模式的延续

    yaphetsfang
  • webpack、npm 相关错误汇总

    使用webstorm搭建vue项目,报如上错误。 本地node版本为10。 原因: 版本10 fs.promises的API是实验性的,webstorm不...

    城市中的游牧民族

扫码关注云+社区

领取腾讯云代金券