zoukankan      html  css  js  c++  java
  • logging基本使用方法

    步骤:
    1.配置日志信息 logging.basicConfig
    2.取得 logging.Logger 对象
    3.使用 Logger 对象输出信息
    以下是一个简单的封装,模拟实现 Android 中的 Log 类
    import logging
    import sys
    
    str_def_fmt = "%(asctime)s.%(msecs)03d %(thread)d %(levelname)s " 
                  "%(module)s %(filename)s:%(lineno)d %(funcName)s: %(message)s"
    logging.basicConfig(level=logging.DEBUG
                        , format=str_def_fmt
                        , datefmt="%Y:%m:%d %H:%M:%S"
                        , stream=sys.stdout)
    logger = logging.getLogger("log")
    
    
    def setAsDebugLevel():
        logger.setLevel(logging.DEBUG)
    
    def setAsInfoLevel():
        logger.setLevel(logging.INFO)
    
    def setAsWarnLevel():
        logger.setLevel(logging.WARN)
    
    def setAsErrorLevel():
        logger.setLevel(logging.ERROR)
    
    def setAsFatalLevel():
        logger.setLevel(logging.FATAL)
    
    d = logger.debug
    i = logger.info
    w = logger.warning
    e = logger.error
    f = logger.fatal
    
    
    def main():
        d("test debug msg")
        i("test info msg")
        w("test warn msg")
        e("test err msg")
        f("test fatal msg")
    
    
    if __name__ == "__main__":
        main()


    相关参数说明:

    logging.basicConfig 参数说明
        默认会创建一个 StreamHandler 并输出到 sys.stderr, 并且使用 BASIC_FORMAT(%(levelname)s:%(name)s:%(message)s) 格式化信息
    
    filename:    指定日志文件名, 此时不会再输出到 StreamHandler 中, 即使指定了新的 stream
    filemode:    指定日志文件的打开模式, 'w'或者'a', 默认为'a'
    format:      指定输出的内容格式, 其配置信息见下文
    datefmt:     输出日期和时间的格式字符串. 与 time.strftime 格式兼容, 不能指定到毫秒级别, 其详细信息见下文
    level        设置日志输出的级别, 小于此级别的信息将被忽略, 默认为 WARNING
    stream       指定输出的流, 默认为 sys.stderr, 如果指定了 filename, 此参数不起作用
    handlers     If specified, this should be an iterable of already created handlers, which will be added to the root handler. Any handler in the list which does not have a formatter assigned will be assigned the formatter created in this function.
    force        If this keyword is specified as true, any existing handlers attached to the root logger are removed and closed, before carrying out the configuration as specified by the other arguments.
    
    
    日志级别:
    级别                 值       描述
    CRITICAL/FATAL       50       关键错误消息
    ERROR                40       错误
    WARNING(WARN)        30       警告消息
    INFO                 20       通知消息
    DEBUG                10       调试
    NOTSET               0        无级别
    
    
    format 配置格式:
    %(name)s            logger 名称, 即调用 logging.getLogger 函数传入的参数
    %(levelno)s         数字形式的日志记录级别
    %(levelname)s       日志级别文本描述, 即"DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"
    %(pathname)s        执行日志记录调用的源文件路径
    %(filename)s        执行日志记录调用的源文件名
    %(module)s          执行日志记录调用的模块名称
    %(lineno)d          执行日志记录调用的行号
    %(funcName)s        执行日志记录调用的函数路径
    %(created)f         执行日志记录调用的时间, 它是 time.time() 返回的数字
    %(asctime)s         执行日志记录调用的ascii格式的时间, 其格式由 datefmt 指定
    %(msecs)d           执行日志记录调用的时间中的毫秒部分
    %(thread)d          线程id (if available)
    %(threadName)s      线程名称 (if available)
    %(process)d         进程ID (if available)
    %(message)s         记录的消息, 如 logging.getLogger().debug(msg) 指定的 msg
    
    
    datefmt
    %y        两位数的年份表示(00-99%Y        四位数的年份表示(000-9999%m        月份(01-12%d        月内中的一天(0-31%H        24小时制小时数(0-23%I        12小时制小时数(01-12%M        分钟数(00=59%S        秒(00-59%a        本地简化星期名称
    %A        本地完整星期名称
    %b        本地简化的月份名称
    %B        本地完整的月份名称
    %c        本地相应的日期表示和时间表示
    %j        年内的一天(001-366%p        本地A.M.或P.M.的等价符
    %U        一年中的星期数(00-53)星期天为星期的开始
    %w        星期(0-6),星期天为星期的开始
    %W        一年中的星期数(00-53)星期一为星期的开始
    %x        本地相应的日期表示
    %X        本地相应的时间表示
    %Z        当前时区的名称
    %%        %号本身
  • 相关阅读:
    VBS基础篇
    AcWing249 蒲公英(分块)
    CF1338B Edge Weight Assignment(思维+dfs)
    CF785E Anton and Permutation(分块)
    UCF Local Programming Contest 2015(Practice)D题
    AcWing851 spfa求最短路
    CF479E Riding in a Lift (dp)
    AcWing267 莫基亚(CDQ分治)
    P4093 [HEOI2016/TJOI2016]序列 (CDQ分治)
    2019ICPC南昌区域赛C题 And and Pair(数位dp)
  • 原文地址:https://www.cnblogs.com/diysoul/p/12322158.html
Copyright © 2011-2022 走看看