Package concurrent_tree_crawler :: Package common :: Module logger
[hide private]
[frames] | no frames]

Source Code for Module concurrent_tree_crawler.common.logger

 1  import logging 
 2  import sys 
3 4 -class Logger:
5 __default_root_log_level = logging.WARNING 6 __console_h = None 7 __file_h = None 8 9 @staticmethod
10 - def start(stream = sys.stderr, file_path = None, 11 logging_level = logging.WARNING, 12 format_ = '%(asctime)s %(levelname)s %(message)s'):
13 """@param stream: output stream where logs are written. If C{None}, 14 logs are not written to any stream. 15 @param file_path: if it is not C{None}, logging messages are written 16 not only to the stream, but to the specified file as well. 17 @param logging_level: logging level accepted by logging devices""" 18 ## Not used version with non-default formatting 19 #datefmt = "%Y-%m-%d %H:%M:%S" 20 #formatter = logging.Formatter(format), datefmt) 21 22 formatter = logging.Formatter(format_) 23 24 root_logger = logging.getLogger("") 25 root_logger.setLevel(logging_level) 26 27 28 if stream is not None: 29 Logger.__console_h = logging.StreamHandler(stream) 30 Logger.__console_h.setLevel(logging_level) 31 Logger.__console_h.setFormatter(formatter) 32 root_logger.addHandler(Logger.__console_h) 33 if file_path is not None: 34 Logger.__file_h = logging.FileHandler(file_path) 35 Logger.__file_h.setLevel(logging_level) 36 Logger.__file_h.setFormatter(formatter) 37 root_logger.addHandler(Logger.__file_h)
38 39 @staticmethod
40 - def stop():
41 """Set the default values in the logging system""" 42 root_logger = logging.getLogger() 43 if Logger.__console_h is not None: 44 root_logger.removeHandler(Logger.__console_h) 45 Logger.__console_h.close() 46 if Logger.__file_h is not None: 47 root_logger.removeHandler(Logger.__file_h) 48 Logger.__file_h.close() 49 root_logger.setLevel(Logger.__default_root_log_level)
50