1# -*- coding: utf-8 -*- 2import logging 3import logging.handlers 4 5handler = logging.StreamHandler() 6handler.setFormatter(logging.Formatter(fmt="%(asctime)s [%(levelname)s]: " 7 "%(message)s")) 8 9logger = logging.getLogger("onionbalance") 10logger.addHandler(handler) 11logger.setLevel(logging.DEBUG) 12 13 14def get_logger(): 15 """ 16 Returns a logger. 17 """ 18 return logger 19 20 21def setup_file_logger(log_file): 22 """ 23 Add log file handler to the existing logger 24 """ 25 handler = logging.handlers.RotatingFileHandler( 26 log_file, maxBytes=10485760, backupCount=3) 27 handler.setFormatter(logging.Formatter(fmt="%(asctime)s [%(levelname)s]: " 28 "%(message)s")) 29 logging.getLogger('onionbalance').addHandler(handler) 30 31 32def get_config_generator_logger(): 33 """ 34 Simplified logger for interactive config generator CLI 35 """ 36 handler = logging.StreamHandler() 37 handler.setFormatter(logging.Formatter(fmt="[%(levelname)s]: " 38 "%(message)s")) 39 40 logger = logging.getLogger("onionbalance-config") 41 logger.addHandler(handler) 42 logger.setLevel(logging.INFO) 43 return logger 44