• python基础-logging模块


    loggging日志

      python的logging模块提供了通用的日志系统.这个模块提供不同的日志级别,并可以采用不同的方式记录日志

      注意:python文件的命名是有讲究的,不要把文件名命名的和模块名字一样,这样会一直报错,比如你这里如果命名为logging.py就会一直报错

    logging.basicCongfig函数各参数:

    1.filename  指定日志文件名

    2.filemode  和file函数意义相同,指定日志文件的打开模式,'w'和'a'

    3.format  指定输出的格式和内容,format可以输出很多有用信息:

          %(levelno)s  打印日志级别的数值

          %(levelname)s  打印日志级别名称

          %(pathname)s  打印当前执行程序的路径

          %(filename)s    打印当前执行名

          %(funcName)s    打印日志的当前函数

          %(lineno)d      打印日志的当前行号

          %(lasctime)s      打印日志的时间

          %(thread)d      打印线程ID

          %(threadName)s    打印线程名称

          %(process)d      打印进程ID

          %(message)s      打印日志信息

    4.level  设置统一日志处理器的级别,默认为logging.WARNING

    日志信息,输出在控制台

    import logging
    import os
    
    '''
    logging.basicConfig:日志的统一处理器,对日志的输出格式和方式做配置
    日志级别等级CRITICAL > ERROR > WARNIG > INFO >DEBUG,
    '''
    
    #log_file = os.path.join(os.getcwd(),'wlog.log')
    #日志格式信息: 日志时间 当前执行名 当前行号 日志级别名称 打印日志信息
    log_format = "%(asctime)s %(filename)s [line:%(lineno)d] %(levelname)s: %(message)s"
    
    '''
    level设定本级别以及以上级别的才会打印.这里注意大小写!
    如果你不写filename和filemode参数则会默认打印到console
    '''
    #level:日志级别 (.)后面是大写, format:日志格式
    logging.basicConfig(level = logging.WARNING,format = log_format)
    #logging.basicConfig(level = logging.WARNING,format = log_format,filename = log_file,filemode = 'w')
    
    #打印日志,
    #级别规则
    #warning级别,可以打出来CRITICAL > ERROR > WARNIG级别的日志
    logging.warning('warning message')
    #error级别
    logging.error('error message')
    logging.debug('debug message')

    只在控制台输出,结果:

    2017-06-18 23:04:55,444 日志.py [line:26] WARNING: warning message
    2017-06-18 23:04:55,444 日志.py [line:28] ERROR: error message

    日志信息,输出在指定位置的文件中

    import logging
    import os
    
    '''
    logging.basicConfig:日志的统一处理器,对日志的输出格式和方式做配置
    日志级别等级CRITICAL > ERROR > WARNIG > INFO >DEBUG,
    '''
    
    #os的拼接,记录文件的路径,os取的当前路径,也可以自己设置位置,wlog.log文件名称
    log_file = os.path.join(os.getcwd(),'wlog.log')
    print(os.getcwd())
    #日志格式信息: 日志时间 当前执行名 当前行号 日志级别名称 打印日志信息
    log_format = "%(asctime)s %(filename)s [line:%(lineno)d] %(levelname)s: %(message)s"
    
    '''
    level设定本级别以及以上级别的才会打印.这里注意大小写!
    如果你不写filename和filemode参数则会默认打印到console
    '''
    #level:日志级别 (.)后面是大写, format:日志格式
    #logging.basicConfig(level = logging.WARNING,format = log_format)
    logging.basicConfig(level = logging.WARNING,format = log_format,filename = log_file,filemode = 'w')
    
    #打印日志,
    #级别规则
    #warning级别,可以打出来CRITICAL > ERROR > WARNIG级别的日志
    logging.warning('warning message')
    #error级别
    logging.error('error message')
    logging.debug('debug message')

    只在指定位置的输出日志文件,结果:

    同时在控制台和指定路径的文件中输出日志信息

    import logging
    '''实现,让日志信息既在控制台,也在指定路径的文件中输出'''
    #日志级别等级 CRITICAL > ERROR > WARNING > INFO > DEBUG
    
    #创建一个logger,顶级的根目录getlogger,有两个分支,一个是FileHander,一个是StreamHandler
    logger = logging.getLogger('mylogger')
    logger.setLevel(logging.INFO)
    
    #创建一个handler,将log写入文件
    fh = logging.FileHandler('D:python workspacewlog_console.log',mode = 'w')
    fh.setLevel(logging.INFO)
    
    #再创建一个handler,将log输出到控制台
    ch = logging.StreamHandler()
    ch.setLevel(logging.INFO)
    
    #设置输出格式
    log_format = "%(asctime)s %(filename)s [line:%(lineno)d] %(levelname)s: %(message)s"
    #把格式添加进来
    formatter = logging.Formatter(log_format)
    fh.setFormatter(formatter)
    ch.setFormatter(formatter)
    
    
    #把handler添加到logger里,其实你理解为汇报给大领导即可
    logger.addHandler(fh)
    logger.addHandler(ch)
    
    logger.error('下雨了')
    logger.info('打雷了')
    logger.debug('收衣服了')

    结果:

    控制台输出:

    2017-06-19 00:14:01,182 日志2.py [line:32] ERROR: 下雨了
    2017-06-19 00:14:01,182 日志2.py [line:33] INFO: 打雷了

    文件中输出:

  • 相关阅读:
    扩展的friend语法
    常量表达式
    字符串过滤,排序输出数字的问题
    decltype类型声明- 现代C++新特性总结
    auto类型-现代C++新特性
    指针相关总结2
    指针相关总结1
    发现XMind一个超级牛逼的功能
    空类指针为什么可以调用类的成员函数 以及 A(){}和A();
    SSAS父子层次结构的增强-UnaryOperatorColumn属性
  • 原文地址:https://www.cnblogs.com/R-bear/p/7045994.html
Copyright © 2020-2023  润新知