zoukankan      html  css  js  c++  java
  • logging模块

     

     

    logging模块是用来记录日志的,有以下5个级别

    logging.info()

    logging.debug()

    logging.error()
    logging.warning()

    logging.critical()

    logging模块涉及4个主要的类:

    logger:提供应用程序可以直接使用的接口

    handler:将日志发送到合适的目的输出

    filter:用来过滤日志的

    formatter:决定日志的输出格式

    formatter中以下格式的含义是:

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

    %(lineno)s:打印对应出现问题日志的行数

    %(levelname)s:打印出问题日志的级别

    %(module)s:调用日志输出的模块名

    %(funcName)s:调用函数输出的函数名

    %(process)s:pycharm启动了python的进程号,结束之后,进程消失

    import  logging

    logger=logging.getLogger("TEST-LOG")
    logger.setLevel(logging.DEBUG)
    先得到一个logger
    ch=logging.StreamHandler()
    ch.setLevel(logging.WARNING)
    以屏幕输出的方式,并且设定日志最低级别
    fh=logging.FileHandler("acess.log")
    fh.setLevel(logging.ERROR)
    将错误日志打印到文件中
    fh_formatter=logging.Formatter('%(asctime)s %(process)s %(filename)s:%(lineno)d  '
                                   ' -%(levelname)s: %(message)s')

    分别设定屏幕输出和文件输出的格式
    ch_formatter=logging.Formatter('%(asctime)s - %(name)s -%(levelname)s - %(message)s')
    ch.setFormatter(ch_formatter)
    fh.setFormatter(fh_formatter)

    logger.addHandler(fh)
    logger.addHandler(ch)
    添加对象
    logger.warning("ddd")
    logger.error("error is happened...")

     

     

    Handler可以管理文件大小,当文件到达一定大小之后,对文件的进行分割,或者以时间为分割线进行分割。代码如下所示:

    import logging,time
    from logging import handlers

    logger=logging.getLogger("TEST")
    得到一个logger
    log_file="timelog.log"
    日志的名称
    #fh=handlers.RotatingFileHandler(filename=log_file,maxBytes=3,backupCount=3,encoding="utf-8")

    上面是以文件大小为截断
    fh=handlers.TimedRotatingFileHandler(filename=log_file,when="S",interval=5,backupCount=3,encoding="utf-8")

    上面是以时间为截断,以5秒为截断时间
    formatter=logging.Formatter('%(asctime)s %(module)s:%(lineno)d %(message)s')

    设置格式
    fh.setFormatter(formatter)

    设置文件的格式
    logger.addHandler(fh)
    添加对象
    logger.warning("test1")
    time.sleep(2)
    logger.warning("test2")
    logger.warning("test3")
    time.sleep(2)
    logger.warning("test4")
    time.sleep(2)
    logger.warning("test5")
    logger.warning("test6")

     

     

  • 相关阅读:
    PHP如何学习?
    PHP compact() 函数
    Laravel中resource方法
    npm run watch-poll 监控css、js 文件更新
    MYSQL 的optimize怎么用
    出现“Windows资源管理器已停止工作”错误
    移动硬盘文件或目录损坏且无法读取怎么解决
    Linux下iptables 禁止端口和开放端口
    Linux VSFTP服务器详细配置
    分享一个基于ligerui的系统应用案例ligerRM V2(权限管理系统)(提供下载)
  • 原文地址:https://www.cnblogs.com/pythonbz/p/6284022.html
Copyright © 2011-2022 走看看