zoukankan      html  css  js  c++  java
  • python日志模块

    python的日志模块使用logging,如果想要输出符合自己的预期,需要重新定义,废话不多说,直接贴代码。

    # encoding: utf -8
    from logging.handlers import TimedRotatingFileHandler
    import logging
    import os
    import inspect
    
    #调用方法log.debug('logname.log','输出内容')
    this_file = inspect.getfile(inspect.currentframe())
    path = os.path.abspath(os.path.dirname(this_file))
    class log:
        def __init__(self):
            if os.path.isdir('%s\log'%path):  #创建log文件夹
                pass
            else:
                os.mkdir('%s\log'%path)
    
        def debug(self,logname,kwarg):
            logFilePath = '%s\log\%s'%(path,logname)
            logger = logging.getLogger("yourName")
            logger.setLevel(logging.DEBUG)
            handler = TimedRotatingFileHandler(logFilePath,
                                               when="midnight",
                                               interval=1,
                                               backupCount=20)
            formatter = logging.Formatter('%(asctime)s   %(levelname)s  %(message)s')
            handler.setFormatter(formatter)
            logger.addHandler(handler)
            logger.debug('%s'%(kwarg))
            logger.removeHandler(handler)
    
        def error(self,logname,kwarg):
            logFilePath = '%s\log\%s'%(path,logname)
            logger = logging.getLogger("yourName")
            logger.setLevel(logging.ERROR)
            handler = TimedRotatingFileHandler(logFilePath,
                                               when="midnight",
                                               interval=1,
                                               backupCount=20)
            formatter = logging.Formatter('%(asctime)s   %(levelname)s  %(message)s')
            handler.setFormatter(formatter)
            logger.addHandler(handler)
            logger.error('%s'%(kwarg))
            logger.removeHandler(handler)

    handler = TimedRotatingFileHandler(logFilePath, when="midnight", interval=1, backupCount=20) 定义写入日志的策略:

    1.每天一个日志文件。

    2.超过20个,删除最早生成的日志。

    formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s') 定义日志输出的格式

    log().debug('test.log','Hello World...')

     日志输出:

     

  • 相关阅读:
    poj1363Rails(栈模拟)
    centos6.5设备mysql5.6
    SGU326Perspective(网络流量的最大流量)(经典赛车模型)
    扩大或缩小undo表空间
    Boost源代码学习---shared_ptr.hpp
    leetcode
    为客户打造RAC-DG一些遇到的问题汇总
    十归并排序有用的算法和二进制搜索的基础
    Delphi TNativeXML Node节点乱码的一种解决方法
    Delphi TcxTreeList 读取 TcxImageComboBoxItem类型的值
  • 原文地址:https://www.cnblogs.com/shenh/p/9708732.html
Copyright © 2011-2022 走看看