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
64
65
66
67
68
69
70
71
72
|
#
#-*- coding:utf-8 -*-
"""
Gentoo-Keys - Log.py
Logging module, placeholder for our site-wide logging module
@copyright: 2012 by Brian Dolbec <dol-sen> <dol-sen@users.sourceforge.net>
@license: GNU GPL2, see COPYING for details.
"""
import logging
import time
import os
from gkeys.fileops import ensure_dirs
NAMESPACE = 'gentoo-keys'
logger = None
Console_handler = None
log_levels = {
'CRITICAL': logging.CRITICAL,
'DEBUG': logging.DEBUG,
'ERROR': logging.ERROR,
'FATAL': logging.FATAL,
'INFO': logging.INFO,
'NOTSET': logging.NOTSET,
'WARN': logging.WARN,
'WARNING': logging.WARNING,
}
def set_logger(namespace=None, logpath='', level=None,
dirmode=0o775, filemask=0o002):
global logger, NAMESPACE, Console_handler
if not namespace:
namespace = NAMESPACE
else:
NAMESPACE = namespace
logger = logging.getLogger(namespace)
logger.setLevel(log_levels['DEBUG'])
# create formatter and add it to the handlers
log_format = '%(asctime)s %(name)-12s %(levelname)-8s %(message)s'
formatter = logging.Formatter(log_format)
# add the handlers to logger
if logpath:
ensure_dirs(logpath, mode=dirmode, fatal=True)
os.umask(filemask)
logname = os.path.join(logpath,
'%s-%s.log' % (namespace, time.strftime('%Y%m%d-%H:%M')))
file_handler = logging.FileHandler(logname)
if level:
#print "Setting cli log level", level, log_levels[level]
file_handler.setLevel(log_levels[level])
else:
#print "Create file handler which logs even debug messages"
file_handler.setLevel(log_levels['DEBUG'])
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)
# create console handler with a higher log level
Console_handler = logging.StreamHandler()
Console_handler.setLevel(logging.ERROR)
#Console_handler.setFormatter(formatter)
logger.addHandler(Console_handler)
#print "File logger suppose to be initialized", logger, Console_handler
logger.debug("Loggers initialized")
return logger
|