zoukankan      html  css  js  c++  java
  • python学习-57 logging模块

    logging

    1.basicConfig方式

    import logging
    
    # 以下是日志的级别
    logging.debug('debug message')
    logging.info('info message')
    logging.warning('warning msg')
    logging.error('error msg')
    logging.critical('critical msg')

    设置级别:

    logging.basicConfig(level=logging.DEBUG)

    如果想要存到文件里:

    logging.basicConfig(level=logging.DEBUG,filename='logger.logo')
    logging.basicConfig(level=logging.DEBUG,filename='logger.logo',filemode='w')

    时间和行号

    format='%(asctime)s %(lineno)d %(message)s'

    运行之后文件里这样显示的

    2019-08-23 10:15:44,510 11 debug message
    2019-08-23 10:15:44,511 12 info message
    2019-08-23 10:15:44,511 13 warning msg
    2019-08-23 10:15:44,512 14 error msg
    2019-08-23 10:15:44,513 15 critical msg

    2.format参数中可能用到的格式化串:

    --- %(name)s        Logger的名字

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

    ---%(levelname)s     文本形式的日志级别

    ---%(pathname)s       调用日志输出函数的模块的完整路径名,可能没有

    ---%(filename)s          调用日志输出函数的模块的文件名

    ---%(module)s  调用日志输出函数的模块名

    ---%(funcName)s   调用日志输出函数的函数名

    ---%(lineno)s  调用函数日志输出函数的语句所在的代码行

    ---%(created)f  当前时间,用UNIX标准的表示时间的浮点数表示

    ---%(relativeCreated)d  输出日志信息时的,自logger创建以来的毫秒数

    ---%(asctime)s  字符串形式的当前时间,默认格式是“2003-07-08 16:49:45,896”  逗号后面是毫秒

    ---%(thread)d  线程ID。可能没有

    ---%(threadName)s  线程名。可能没有

    ---%(process)d  进程ID。 可能没有

    ---%(message)s  用户输出的信息

    3.logger对象

    import logging
    
    logger = logging.getLogger()           # 创建对象
    
    
    f = logging.FileHandler('test_log')           # 向文件里发送内容
    screen = logging.StreamHandler()     # 向屏幕发送内容
    
    ff = logging.Formatter('%(asctime)s' '%(message)s')
    
    f.setFormatter(ff)
    screen.setFormatter(ff)
    
    logger.addHandler(f)
    logger.addHandler(screen)
    
    logger.setLevel('DEBUG')
    
    
    logger.debug('debug')
    logger.info('info')
    logger.warning('warning')
    logger.error('error')
    logger.critical('critical')

    运行结果屏幕上也显示,也能存到文件里

    改为函数的形式:

    import logging
    def logger():
        logger = logging.getLogger()           # 创建对象
    
    
        f = logging.FileHandler('test_log')           # 向文件里发送内容
        screen = logging.StreamHandler()     # 向屏幕发送内容
    
        ff = logging.Formatter('%(asctime)s' '%(message)s')
    
        f.setFormatter(ff)
        screen.setFormatter(ff)
    
        logger.addHandler(f)
        logger.addHandler(screen)
    
        logger.setLevel('DEBUG')
        return logger
    
    logger = logger()
    logger.debug('debug')
    logger.info('info')
    logger.warning('warning')
    logger.error('error')
    logger.critical('critical')
  • 相关阅读:
    codeforces 940E 思维,dp
    codeforces 469D 2-SAT
    Codeforces 937D dfs
    Educational Codeforces Round 39 (Rated for Div. 2) D dp E 贪心
    Codeforces Round #469 (Div. 2) D 数学递归 E SCC缩点
    Wannafly挑战赛11 D 白兔的字符串 Hash
    Codeforces Round #470 (Div 2) B 数学 C 二分+树状数组 D 字典树
    UVA
    最小生成树(改了两个板子写的)道路建设
    poj1125 基础最短路
  • 原文地址:https://www.cnblogs.com/liujinjing521/p/11399160.html
Copyright © 2011-2022 走看看