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