1 import os
2 import logging
3 import logging.config
4 from logging import Formatter
5 from tlib.base import TestHelper
6
7
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
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
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
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
42 curr_folder = os.path.dirname(request.fspath.strpath)
43
44
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
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
59 logger = logging.getLogger(name)
60 logger.setLevel(logging.DEBUG)
61
62
63 fh = logging.FileHandler(os.path.join(log_folder, 'test.log'))
64 logger.addHandler(fh)
65
66 fh.setLevel(logging.DEBUG)
67
68
69 formatter = Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
70 fh.setFormatter(formatter)
71
72 return logger
73