Package tlib :: Package base :: Module LogHelper
[hide private]
[frames] | no frames]

Source Code for Module tlib.base.LogHelper

 1  import os 
 2  import logging 
 3  import logging.config 
 4  from logging import Formatter 
 5  from tlib.base import TestHelper 
 6   
 7   
8 -def get_tlib_logger(request):
9 """ 10 Returns logger named tlib.\n 11 This logger should only be used by TLib modules. To log from a test or test module use get_test_logger\n 12 Logger will get flushed at the end to ensure data is not lost if tests exits abnormally 13 """ 14 return get_logger(request, "tlib")
15 16
17 -def get_adb_logger(request):
18 """ 19 Returns logger named adb.\n 20 This logger should only be used by adb modules. To log from a test or test module use get_test_logger\n 21 Logger will get flushed at the end to ensure data is not lost if tests exits abnormally 22 """ 23 return get_logger(request, "adb")
24
25 -def get_test_logger(request):
26 """ 27 Returns logger named test.\n 28 This logger should only be used by test modules. To log from a test or test module use get_test_logger\n 29 Logger will get flushed at the end to ensure data is not lost if tests exits abnormally 30 """ 31 return get_logger(request, "test")
32
33 -def get_logger(request, name):
34 """ 35 Returns a logger that has a console and a file handler.\n 36 37 @param name: Logger to return 38 @type name: str 39 @return: 40 """ 41 # find location of .log file 42 curr_folder = os.path.dirname(request.fspath.strpath) 43 44 #Go up to three levels to find log folder. Search starts in current directory 45 log_folder = None 46 for i in range(1, 4): 47 curr_folder = os.path.abspath(os.path.join(curr_folder, os.pardir)) 48 49 #Check if there is a folder 'logs' 50 folder = os.path.join(curr_folder, 'logs') 51 if os.path.exists(folder): 52 log_folder = folder 53 break 54 55 if log_folder is None: 56 raise IOError("Couldn't find folder 'logs'. Create it under your project folder and try again") 57 58 #Create logger 59 logger = logging.getLogger(name) 60 logger.setLevel(logging.DEBUG) 61 62 #Add a file handler 63 fh = logging.FileHandler(os.path.join(log_folder, 'test.log')) 64 logger.addHandler(fh) 65 66 fh.setLevel(logging.DEBUG) 67 68 #Set log format 69 formatter = Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') 70 fh.setFormatter(formatter) 71 72 return logger
73