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()
    """
  • 相关阅读:
    JVM活学活用——GC算法 垃圾收集器
    JVM活学活用——类加载机制
    JVM活学活用——Jvm内存结构
    优化springboot
    Java基础巩固计划
    Java自定义注解
    记一次内存溢出的分析经历
    redis学习笔记-redis的安装
    记一次线程池调优经历
    Python中关于split和splitext的差别和运用
  • 原文地址:https://www.cnblogs.com/guo126/p/13816347.html
Copyright © 2011-2022 走看看