美文网首页Python中文社区python
简单的python日志类封装

简单的python日志类封装

作者: _luka_ | 来源:发表于2018-07-16 15:18 被阅读34次

最近学了下python的定制类相关,发现可以封装类进行链式调用,于是对Log类进行了封装


from enum import Enum

import logging

class AppLog:

    level = Enum('level',{'debug':logging.DEBUG,'info':logging.INFO,'warning':logging.WARNING,'error':logging.ERROR,'critical':logging.CRITICAL})

    logger = None

    lvl = None

    def __init__(self,name):

        self.logger = logging.getLogger(name)

        self.logger.setLevel(logging.DEBUG)

        self.setLogHandle()

    def setLogHandle(self):

        fhandler = logging.FileHandler('log/app.log','a','utf-8')

        formatter = logging.Formatter('%(asctime)s %(name)s %(levelname)s %(message)s')

        fhandler.setFormatter(formatter)

        fhandler.setLevel(logging.DEBUG)

        console = logging.StreamHandler()

        console.setFormatter(formatter)

        console.setLevel(logging.ERROR)

        self.logger.addHandler(fhandler)

        self.logger.addHandler(console)

    def __getattr__(self,name):

        if(name in ('debug','info','warn','error','critical')):

            self.lvl = self.level[name].value

            return self

        else:

            raise AttributeError('Attr not Correct') 

    def __call__(self,msg):

        self.logger.log(self.lvl,msg)

代码中使用了两个handler,其中debug级别及以上的Log会通过FileHandler写入当前目录下log/app.log文件下,error级别及以上的Log则会通过系统输出(ext://sys.stdout)的streamHandler在控制台进行输出

使用方法:如下直接调用即可

AppLog('test').error('xxx fail')

输出格式:

2018-07-16 12:41:17,185 test ERROR xxx fail

相关文章

  • Python&selenium 自动化测试框架之日志封装

    Python+selenium自动化测试框架中需要封装一个简单的日志类,用于后续日志输出:1.使用Python中的...

  • 简单的python日志类封装

    最近学了下python的定制类相关,发现可以封装类进行链式调用,于是对Log类进行了封装 代码中使用了两个hand...

  • python 封装log 日志类

    在工作过程中,经常需要处理日志,以下封装一个日志类,进行日志记录 测试使用:

  • Python利用logging包记录、打印日志

    封装日志操作类: 以下是已经封装好logging的日志类文件,直接调用即可。可以根据自己的需求,自行调整封装的内容...

  • python 日志模块简单封装

    最近要部署一个 python 的 flask 项目, 与其它 web 工程一样, 需要一个日志记录库。 经查阅, ...

  • python logging的简单使用

    logging是python中负责处理日志的模块我们对其进行简单的封装,以方便使用我们采取配置文件形式来进行日志的...

  • 工具类之LogUtils

    安卓开发离不开记录log日志,封装了一份简单的日志工具类,具有设置日志总开关,是否写入文件,日志过滤器和自定义标签...

  • Android Log的简单封装

    Android Log的简单封装 在Android开发中,我们常常需要通过使用Log类来打印日志来查看应用某个部分...

  • log4js的使用

    前言 实现进程层面文件日志的写入 封装的log4js日志类 示例demo

  • 常用模块封装

    日志收集器封装成类 获取应用启动Activity

网友评论

    本文标题:简单的python日志类封装

    本文链接:https://www.haomeiwen.com/subject/ffdbpftx.html