Skip to content
setup.py 2.51 KiB
Newer Older
Wei Shoulin's avatar
Wei Shoulin committed
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# Copyright (c) 2019 Shoulin Wei
#
# This file is part of CSST.

# coding: utf-8
Wei Shoulin's avatar
Wei Shoulin committed
import os
import path
Wei Shoulin's avatar
Wei Shoulin committed
import logging
import logging.handlers

def setup_logging():
    """ Setup logging configuration """

Wei Shoulin's avatar
Wei Shoulin committed
    cfmt = logging.Formatter(('%(asctime)s- %(name)s - %(filename)s - %(levelname)s - %(message)s'))
Wei Shoulin's avatar
Wei Shoulin committed

    # File formatter, mention time
Wei Shoulin's avatar
Wei Shoulin committed
    ffmt = logging.Formatter(('%(asctime)s - %(filename)s - %(levelname)s - %(message)s'))

Wei Shoulin's avatar
Wei Shoulin committed

    # Console handler
    ch = logging.StreamHandler()
    ch.setLevel(logging.INFO)
    ch.setFormatter(cfmt)

Wei Shoulin's avatar
Wei Shoulin committed
    logs_dir = os.getenv("CSST_DFS_LOGS_DIR", "logs")    

    if not os.path.exists(logs_dir):
        os.makedirs(logs_dir)
Wei Shoulin's avatar
Wei Shoulin committed
    # File handler
Wei Shoulin's avatar
Wei Shoulin committed
    fh = logging.handlers.RotatingFileHandler(os.path.join(logs_dir, 'csst_dfs.log'),
Wei Shoulin's avatar
Wei Shoulin committed
        maxBytes=10*1024*1024, backupCount=10)
    fh.setLevel(logging.INFO)
    fh.setFormatter(ffmt)

    # Create the logger,
    # adding the console and file handler
    csst_logger = logging.getLogger('csst')
    csst_logger.handlers = []
    csst_logger.setLevel(logging.DEBUG)
    csst_logger.addHandler(ch)
    csst_logger.addHandler(fh)

    # Set up the concurrent.futures logger
    cf_logger = logging.getLogger('concurrent.futures')
    cf_logger.setLevel(logging.DEBUG)
    cf_logger.addHandler(ch)
    cf_logger.addHandler(fh)

    return csst_logger

def setup_test_logging():
    # Console formatter, mention name
    cfmt = logging.Formatter(('%(name)s - %(levelname)s - %(message)s'))

    # File formatter, mention time
    ffmt = logging.Formatter(('%(asctime)s - %(levelname)s - %(message)s'))

    # Only warnings and more serious stuff on the console
    ch = logging.StreamHandler()
    ch.setLevel(logging.WARN)
    ch.setFormatter(cfmt)

Wei Shoulin's avatar
Wei Shoulin committed
    logs_dir = os.getenv("CSST_DFS_LOGS_DIR", "logs")    

    if not os.path.exists(logs_dir):
        os.makedirs(logs_dir)
Wei Shoulin's avatar
Wei Shoulin committed
    # Outputs DEBUG level logging to file
Wei Shoulin's avatar
Wei Shoulin committed
    fh = logging.FileHandler(os.path.join(logs_dir, 'csst_dfs_test.log'),
Wei Shoulin's avatar
Wei Shoulin committed
        maxBytes=10*1024*1024, backupCount=10)
Wei Shoulin's avatar
Wei Shoulin committed
    fh.setLevel(logging.DEBUG)
    fh.setFormatter(ffmt)

    # Set up the montblanc logger
    csst_logger = logging.getLogger('csst')
    csst_logger.handlers = []
    csst_logger.setLevel(logging.DEBUG)
    csst_logger.addHandler(ch)
    csst_logger.addHandler(fh)

    # Set up the concurrent.futures logger
    cf_logger = logging.getLogger('concurrent.futures')
    cf_logger.setLevel(logging.DEBUG)
    cf_logger.addHandler(ch)
    cf_logger.addHandler(fh)

    return csst_logger