Example #1
0
def configure_logging(logger, log_level_file, log_level_stderr, filename):
    """Configures logging for given logger using the given filename.

    :return None.
    """
    # Create an IdentityFilter.
    identity = get_identifier()
    identity_filter = IdentityFilter(identity=identity)
    formatter = logging.Formatter(LOG_FORMAT)

    if log_level_file != "NONE":
        # If the logging directory doesn't exist, create it.
        if not os.path.exists(LOG_DIR):
            os.makedirs(LOG_DIR)

        # Determine path to log file.
        log_path = os.path.join(LOG_DIR, filename)

        # Create a log handler and formatter and apply to _log.
        handler = ConcurrentRotatingFileHandler(filename=log_path,
                                                maxBytes=1000000,
                                                backupCount=5)
        handler.addFilter(identity_filter)
        handler.setFormatter(formatter)
        logger.addHandler(handler)
        logger.setLevel(log_level_file)

    if log_level_stderr != "NONE":
        # Attach a stderr handler to the log.
        stderr_handler = logging.StreamHandler(sys.stderr)
        stderr_handler.setLevel(log_level_stderr)
        stderr_handler.addFilter(identity_filter)
        stderr_handler.setFormatter(formatter)
        logger.addHandler(stderr_handler)
Example #2
0
def configure_logging(logger, log_filename, log_level=logging.INFO, 
        stderr_level=logging.ERROR, log_dir=LOG_DIR):
    """Configures logging for given logger using the given filename.

    :return None.
    """
    # If the logging directory doesn't exist, create it.
    if not os.path.exists(log_dir):
        os.makedirs(log_dir)

    # Determine path to log file.
    log_path = os.path.join(log_dir, log_filename)

    # Create an IdentityFilter.
    identity = get_identifier()
    identity_filter = IdentityFilter(identity=identity)

    # Create a log handler and formtter and apply to _log.
    hdlr = ConcurrentRotatingFileHandler(filename=log_path,
                                         maxBytes=1000000,
                                         backupCount=5)
    hdlr.addFilter(identity_filter)
    formatter = logging.Formatter(LOG_FORMAT)
    hdlr.setFormatter(formatter)
    logger.addHandler(hdlr)
    logger.setLevel(log_level)

    # Attach a stderr handler to the log.
    stderr_hdlr = logging.StreamHandler(sys.stderr)
    stderr_hdlr.setLevel(stderr_level)
    stderr_hdlr.setFormatter(formatter)
    logger.addHandler(stderr_hdlr)
Example #3
0
def getLogger(logname='root'):
    
  logger = logging.getLogger(logname)
  logger.setLevel(logging.DEBUG)
                            
  DIR = '../log/'
  if DIR: # not none
    subprocess.check_call(['mkdir', '-p', DIR])
  #================================
  # File Handler
  #================================
  LOG_FILENAME = os.path.abspath(DIR + logname + '.err')
  handler = ConcurrentRotatingFileHandler(LOG_FILENAME, "a", 200*1024*1024, 5)
  handler.setLevel(logging.WARN)
  formatter = logging.Formatter("%(asctime)s\t%(name)s-%(process)s-%(threadName)s\t%(levelname)s\t%(message)s")
  handler.setFormatter(formatter)
  logger.addHandler(handler)
  
  #================================
  # Standard Output Handler: INFO ONLY
  #================================
  # handler = logging.StreamHandler(sys.stdout)
  LOG_FILENAME = os.path.abspath(DIR + logname + '.info')
  handler = ConcurrentRotatingFileHandler(LOG_FILENAME, "a", 200*1024*1024, 5)
  handler.setLevel(logging.DEBUG)
  formatter = logging.Formatter("%(asctime)s\t%(name)s-%(process)s-%(threadName)s\t%(message)s")
  handler.setFormatter(formatter)
  handler.addFilter(LevelFilter(logging.INFO))
  logger.addHandler(handler)
  return logger
Example #4
0
def configure_logger(logger,
                     log_level,
                     docker_id=None,
                     log_format=LOG_FORMAT,
                     log_dir=LOG_DIR):
    """
    Configures logging to the file 'calico.log' in the specified log directory

    If the logs are not coming from calico_kubernetes.py, format the log to
     include the filename of origin

    Additionally configures a stderr handler which logs INFO and
    above to stderr.

    :param logger: logger object to configure
    :param log_level: level at which logger starts logging.
    :param log_format: Indicates which logging scheme to use.
    :param log_dir: Directory where calico.log lives. If None set to default
    :return:
    """
    if not os.path.exists(log_dir):
        os.makedirs(log_dir)

    formatter = logging.Formatter(log_format)
    docker_filter = IdentityFilter(identity=docker_id)

    file_hdlr = ConcurrentRotatingFileHandler(filename=log_dir + 'calico.log',
                                              maxBytes=1000000,
                                              backupCount=5)
    file_hdlr.setFormatter(formatter)
    if docker_id:
        file_hdlr.addFilter(docker_filter)

    # Add file handler and set log level.
    logger.addHandler(file_hdlr)
    logger.setLevel(log_level)

    # Create a stderr handler and apply it to the logger.
    # This only logs INFO and above to stderr.
    stderr_hdlr = logging.StreamHandler(sys.stderr)
    stderr_hdlr.setLevel(logging.INFO)
    stderr_hdlr.setFormatter(formatter)
    logger.addHandler(stderr_hdlr)
Example #5
0
def configure_logger(logger, log_level, docker_id=None, log_format=LOG_FORMAT,
                     log_dir=LOG_DIR):
    """
    Configures logging to the file 'calico.log' in the specified log directory

    If the logs are not coming from calico_kubernetes.py, format the log to
     include the filename of origin

    Additionally configures a stderr handler which logs INFO and
    above to stderr.

    :param logger: logger object to configure
    :param log_level: level at which logger starts logging.
    :param log_format: Indicates which logging scheme to use.
    :param log_dir: Directory where calico.log lives. If None set to default
    :return:
    """
    if not os.path.exists(log_dir):
        os.makedirs(log_dir)

    formatter = logging.Formatter(log_format)
    docker_filter = IdentityFilter(identity=docker_id)

    file_hdlr = ConcurrentRotatingFileHandler(filename=log_dir+'calico.log',
                                              maxBytes=1000000,
                                              backupCount=5)
    file_hdlr.setFormatter(formatter)
    if docker_id:
        file_hdlr.addFilter(docker_filter)

    # Add file handler and set log level.
    logger.addHandler(file_hdlr)
    logger.setLevel(log_level)

    # Create a stderr handler and apply it to the logger.
    # This only logs INFO and above to stderr.
    stderr_hdlr = logging.StreamHandler(sys.stderr)
    stderr_hdlr.setLevel(logging.INFO)
    stderr_hdlr.setFormatter(formatter)
    logger.addHandler(stderr_hdlr)
Example #6
0
    def __init__(self, log_dir):
        logger = logging.getLogger()
        logger.setLevel(logging.INFO)

        # 日志按每天切分到不同的文件夹下,先检查创建文件夹
        # 注意脚本一次执行时间过短时,是不会触发日志切割的,因此主动拆分
        # log_dir = os.path.join(app_dir, "log")
        if not os.path.exists(log_dir):
            os.mkdir(log_dir)

        info_handler = ConcurrentRotatingFileHandler(log_dir + "/info.log",
                                                     "a",
                                                     1024 * 1024 * 1024 * 1, 6)
        error_handler = ConcurrentRotatingFileHandler(log_dir + "/error.log",
                                                      "a", 1024 * 1024 * 10, 5)
        warning_handler = ConcurrentRotatingFileHandler(
            log_dir + "/warning.log", "a", 1024 * 1024 * 10, 5)

        info_filter = InfoFilter()
        error_filter = ErrorFilter()
        warning_filter = WarningFilter()

        info_handler.addFilter(info_filter)
        error_handler.addFilter(error_filter)
        warning_handler.addFilter(warning_filter)

        # 设置formatter
        fmt = "%(asctime)s [%(levelname)s] [%(process)d:%(thread)d] [%(name)s:%(lineno)d] - %(message)s"
        formatter = logging.Formatter(fmt)  # 实例化formatter
        info_handler.setFormatter(formatter)
        error_handler.setFormatter(formatter)
        warning_handler.setFormatter(formatter)

        logger.addHandler(info_handler)
        logger.addHandler(error_handler)
        logger.addHandler(warning_handler)