• logging模块


    一.用于日志的书写

    默认情况下,Python的logging模块输出到标准输出上,级别比warning大的才会输出,

    默认日志级别设置为WARNING(日志级别等级critical> error>warning>info>defout>notest)

     两个方法:

      logger=logging.getLogger(logger对象名)返回一个logger对象名字默认为root

      logger.setLevel(logging.级别)设置logger的日志级别

      logger.addHandler(logger对象)添加logger对象到logger中

    一些参数:

      filename:用指定的文件名创建FileHander,日志会被存储到文件中

      filemod:指定文件的打开方式,默认为“a”

      format:指定handler的日志显示格式

      datefmt:指定日期显示格式

      level:设置rootlogger的日志级别

      stream:用指定的stream创建StreamHandler,可以指定输出到sys.stderr,sys.stdout或者文件

    format参数:

      %(name)s logger的名字

      %(levelno)s数字形式的日志级别

    import  logging
    logging. basic Config( level=logging.DEBUG,
                                           format='%(asctime)s%(filename)s %[line:%(lineno)d]s   %(levelname)s %(massage)s'
                                             datefmt='%a  %d    %b  %y  %H:%M:%S'#这是对时间格式的设置
                                            filename='test.txt'#是对输出文件的名字,可以是绝对路径
                                            filemod='a'#文件的模式,默认为a模式)
    
    
    logging. debug('debug  massage')
    logging. info('info  massage')
    logging. warning('warning   massage')
    logging. error('error  massage')
    logging. critical( 'critical  massage')
    import    logging
    logger=logging.getLogger()
    fh = logging.FileHandler('test.log')#创建一个handler,用于写入日志文件
    ch = logging.StreamHandler()#创建一个handler,用于输出到控制台
    formatter = logging.Formatter('%(asctime)s-%(name)s-%(levelname)s-%(massage)s')
    fh.setFormatter(formatter)
    ch.Formatter(formatter)
    logger.setLevel(logging.DEBUG)
    logger.debug('logger debug massage')
    logger.info('logger info massage')

    写一个函数用于logging模块,以后调用只需要调用该函数

    import os
    import time
    import logging
    from config import settings
    def get_logger(card_num,struct_time):
        if struct_time.tm_mday<23:
            file_name = "%s_%s_%d"%
    (struct_time.tm_year,struct_time.tm_mon,22)
        
        else:
            file_name = "%s_%s_%d"(struct_time.tm_year,struct_time.tm_mon+1,22)
        file_handler=logging.FileHandler(
               os.path.join(setting.USER_DIR_FOLDER,card_num,'record',file_name)
            encoding='utf-8'
    )    
        fmt = logging.Formatter(fmt="%(asctime)s : %(massage)s")
        file_handler.setFormatter(fmt)
        logger1=logging.Logger('user_logger',level=logging.INFO)
        odder1.addHandler(file_name)
        return logger1
  • 相关阅读:
    prototype
    JS中我们为什么要new个实例而不直接执行
    购物车,实现增删改查;无bug,还有一个直接修改购物车数量功能未实现
    jquery中判断复选框有没有被选上
    git
    scss
    gulp基本操作
    nodejs,,一些基本操作--server。js
    node.js介绍及简单例子
    自己定义jquery插件轮播图
  • 原文地址:https://www.cnblogs.com/gjx1212/p/11703161.html
Copyright © 2020-2023  润新知