blob: 0cba8c528963563905287b47390198dedefe0438 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
#!/usr/bin/env python
#
# jose.lausuch@ericsson.com
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Apache License, Version 2.0
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
#
# Logging levels:
# Level Numeric value
# CRITICAL 50
# ERROR 40
# WARNING 30
# INFO 20
# DEBUG 10
# NOTSET 0
#
# Usage:
# import functest_logger as fl
# logger = fl.Logger("script_name").getLogger()
# logger.info("message to be shown with - INFO - ")
# logger.debug("message to be shown with - DEBUG -")
import logging
import logging.config
import os
import json
from functest.utils.constants import CONST
class Logger:
def __init__(self, logger_name):
self.setup_logging()
self.logger = logging.getLogger(logger_name)
def getLogger(self):
return self.logger
def is_debug(self):
if CONST.CI_DEBUG and CONST.CI_DEBUG.lower() == "true":
return True
return False
def setup_logging(self, default_path=CONST.dir_functest_logging_cfg,
default_level=logging.INFO,
env_key='LOG_CFG'):
path = default_path
value = os.getenv(env_key, None)
if value:
path = value
if os.path.exists(path):
with open(path, 'rt') as f:
config = json.load(f)
if (config['handlers'] and
config['handlers']['console']):
stream_level = logging.INFO
if self.is_debug():
stream_level = logging.DEBUG
config['handlers']['console']['level'] = stream_level
logging.config.dictConfig(config)
else:
logging.basicConfig(level=default_level)
|