代码之家  ›  专栏  ›  技术社区  ›  hoju

python日志记录选项

  •  11
  • hoju  · 技术社区  · 15 年前

    蟒蛇 logging module 使用起来很麻烦。有更优雅的选择吗?与桌面通知集成将是一个优势。

    4 回复  |  直到 7 年前
        1
  •  7
  •   erikbstack    11 年前
        2
  •  4
  •   dwurf    9 年前

    pysimplelog

    from pysimplelog import Logger
    L=Logger()
    print L
    >>> Logger (Version 0.2.1)
    >>> log type  |log name  |level     |std flag  |file flag |
    >>> ----------|----------|----------|----------|----------|
    >>> debug     |DEBUG     |0.0       |True      |True      |
    >>> info      |INFO      |10.0      |True      |True      |
    >>> warn      |WARNING   |20.0      |True      |True      |
    >>> error     |ERROR     |30.0      |True      |True      |
    >>> critical  |CRITICAL  |100.0     |True      |True      |
    
    L.info('I am an info')
    >>> 2016-09-26 15:01:17 - logger <INFO> I am an info
    
    L.warn('I am a warning')
    >>> 2016-09-26 15:01:17 - logger <WARNING> I am a warning
    
    L.error('I am an error')
    >>> 2016-09-26 15:01:17 - logger <ERROR> I am an error
    

        3
  •  1
  •   derchambers    7 年前
        4
  •  0
  •   wcc526    10 年前
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    import logging
    import logging.handlers
    from logging.config import dictConfig
    
    logger = logging.getLogger(__name__)
    
    DEFAULT_LOGGING = {
        'version': 1,
        'disable_existing_loggers': False,
    }
    def configure_logging(logfile_path):
        """
        Initialize logging defaults for Project.
    
        :param logfile_path: logfile used to the logfile
        :type logfile_path: string
    
        This function does:
    
        - Assign INFO and DEBUG level to logger file handler and console handler
    
        """
        dictConfig(DEFAULT_LOGGING)
    
        default_formatter = logging.Formatter(
            "[%(asctime)s] [%(levelname)s] [%(name)s] [%(funcName)s():%(lineno)s] [PID:%(process)d TID:%(thread)d] %(message)s",
            "%d/%m/%Y %H:%M:%S")
    
        file_handler = logging.handlers.RotatingFileHandler(logfile_path, maxBytes=10485760,backupCount=300, encoding='utf-8')
        file_handler.setLevel(logging.INFO)
    
        console_handler = logging.StreamHandler()
        console_handler.setLevel(logging.DEBUG)
    
        file_handler.setFormatter(default_formatter)
        console_handler.setFormatter(default_formatter)
    
        logging.root.setLevel(logging.DEBUG)
        logging.root.addHandler(file_handler)
        logging.root.addHandler(console_handler)
    
    
    
    [31/10/2015 22:00:33] [DEBUG] [yourmodulename] [yourfunction_name():9] [PID:61314 TID:140735248744448] this is logger infomation from hello module