Upload the contribution of vstf as bottleneck network framework.
[bottlenecks.git] / vstf / vstf / common / log.py
1 import logging
2
3
4 def _init_log_to_file(log_file, level, _format):
5     file_handler = logging.FileHandler(log_file)
6     file_handler.setLevel(level)
7     file_handler.setFormatter(logging.Formatter(_format))
8     return file_handler
9
10
11 def _init_log_to_console(level, _format):
12     console = logging.StreamHandler()
13     console.setLevel(level)
14     console.setFormatter(logging.Formatter(_format))
15     return console
16
17
18 def _init_log(log_file, level=logging.INFO, clevel=logging.INFO):
19     _format = '%(asctime)s <%(levelname)s> [%(funcName)s.%(lineno)d]: %(message)s'
20     # _format = '%(asctime)s [%(levelname)s] %(message)s'
21     _verbose = '%(levelname)s %(asctime)s [%(filename)s:%(lineno)d] %(funcName)s ### %(message)s'
22     _simple = '<%(levelname)s> [%(filename)s:%(lineno)d] ### %(message)s'
23     file_handler = _init_log_to_file(log_file, level, _verbose)
24     console = _init_log_to_console(clevel, _simple)
25     return file_handler, console
26
27
28 def setup_logging(level=logging.INFO, log_file="/var/log/esp_test.log", clevel=logging.WARNING):
29     log = logging.getLogger()
30     log.setLevel(level)
31     file_handler, console = _init_log(log_file, level, clevel)
32     log.addHandler(file_handler)
33     log.addHandler(console)
34
35
36 if __name__ == "__main__":
37     setup_logging()
38     logger = logging.getLogger("common")
39     logger.info('this is a test.')
40     logger.warning('this is a test.')
41     logger.error('this is a test.')