Statistics
| Branch: | Tag: | Revision:

root / snf-common / synnefo / lib / commissioning / utils / debug.py @ f54beeea

History | View | Annotate | Download (1.2 kB)

1
#!/usr/bin/env python
2

    
3
import logging
4
from os import environ
5

    
6
_logger = None
7

    
8
def init_logger_file(name, level='DEBUG'):
9
    logger = logging.getLogger(name)
10
    handler = logging.FileHandler(name + '.log')
11
    formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
12
    handler.setFormatter(formatter)
13
    logger.addHandler(handler)
14
    level = getattr(logging, level, logging.DEBUG)
15
    logger.setLevel(level)
16
    global _logger
17
    _logger = logger
18
    return logger
19

    
20
def init_logger_stderr(name, level='DEBUG'):
21
    logger = logging.getLogger(name)
22
    from sys import stderr
23
    handler = logging.StreamHandler(stderr)
24
    formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
25
    handler.setFormatter(formatter)
26
    logger.addHandler(handler)
27
    level = getattr(logging, level, logging.DEBUG)
28
    logger.setLevel(level)
29
    global _logger
30
    _logger = logger
31
    return logger
32

    
33
def debug(fmt, *args):
34
    global _logger
35
    if _logger is None:
36
        init_logger_stderr('logger', get_level())
37
    _logger.debug(fmt % args)
38

    
39
def get_level(default='INFO'):
40
    try:
41
        return environ['DEBUG_LEVEL']
42
    except:
43
        return default