zoukankan      html  css  js  c++  java
  • python将日志生成到文件和控制台

    # 日志收集设置
    import logging, os
    from logging.handlers import TimedRotatingFileHandler
    import datetime

    current_dir = os.path.abspath(os.path.dirname(__file__))
    parent_dir = os.path.dirname(current_dir)
    my_log_path = os.path.join(parent_dir, "./Log")
    error_path = os.path.join(parent_dir, "./Log/error")
    if not os.path.exists(my_log_path):
    os.mkdir(my_log_path)
    if not os.path.exists(error_path):
    os.mkdir(error_path)
    my_report_path = os.path.join(parent_dir, "./Report")
    if not os.path.exists(my_report_path):
    os.mkdir(my_report_path)

    # 定义一个日志收集器
    logger = logging.getLogger("guoguo")
    # 设置收集器级别,不设定的话,会默认搜集warning及以上级别的日志
    logger.setLevel(logging.INFO)
    # 设置日志格式
    fmt = logging.Formatter("%(filename)s-%(lineno)d-%(asctime)s-%(levelname)s-%(message)s")

    # 设置日志输出到控制台
    stream_handler = logging.StreamHandler()

    # 设置日志输出到文件
    file_handler = TimedRotatingFileHandler('Log/{}.log'.format(datetime.datetime.now().strftime('%Y-%m-%d')), when="D", interval=1, backupCount=30, encoding='utf-8')
    file_error_handler = TimedRotatingFileHandler('Log/error/{}.log'.format(datetime.datetime.now().strftime('%Y-%m-%d')), when="D", interval=1, backupCount=30, encoding='utf-8')

    # 设置控制台和文件的日志输出格式
    stream_handler.setFormatter(fmt)
    file_handler.setFormatter(fmt)
    file_error_handler.setFormatter(fmt)

    # 添加过滤条件
    err_filter = logging.Filter()
    err_filter.filter = lambda record: record.levelno >= logging.WARNING
    file_error_handler.addFilter(err_filter)

    # 将输出对象添加到logger中
    logger.addHandler(file_handler)
    logger.addHandler(stream_handler)
    logger.addHandler(file_error_handler)
    """
    收集日志
    logger.info()
    logger.debug()
    logger.warning()
    logger.error()
    """
  • 相关阅读:
    Android编译系统
    Android指针管理:RefBase,SP,WP
    Android图片异步加载
    Android动画学习笔记Android Animation
    触发checkbox的click事件时遇到的问题
    C++ Primer笔记
    Android自定义对话框(Dialog)位置,大小
    android startService流程梳理笔记
    自定义SimpleAdapter
    Android Touch事件
  • 原文地址:https://www.cnblogs.com/guo126/p/13816347.html
Copyright © 2011-2022 走看看