diff options
Diffstat (limited to 'obalie/log.py')
-rw-r--r-- | obalie/log.py | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/obalie/log.py b/obalie/log.py new file mode 100644 index 0000000..bf65996 --- /dev/null +++ b/obalie/log.py | |||
@@ -0,0 +1,44 @@ | |||
1 | # vim: set filencoding=utf8 | ||
2 | """ | ||
3 | Logging Utlities for obalie | ||
4 | |||
5 | @author: Mike Crute (mcrute@ag.com) | ||
6 | @organization: SoftGroup Interactive, Inc. | ||
7 | @date: April 20, 2010 | ||
8 | """ | ||
9 | |||
10 | |||
11 | import sys | ||
12 | import logging | ||
13 | from logging import Formatter, StreamHandler | ||
14 | from functools import wraps | ||
15 | |||
16 | |||
17 | # Setup root logger | ||
18 | root_logger = logging.getLogger('obalie') | ||
19 | |||
20 | # If the root logger is not already configured then we | ||
21 | # should probably configure it with some sane defaults. | ||
22 | if root_logger.level == logging.NOTSET: | ||
23 | # XXX: RESET THIS! | ||
24 | # root_logger.setLevel(logging.WARN) | ||
25 | root_logger.setLevel(logging.DEBUG) | ||
26 | |||
27 | handler = StreamHandler(sys.stdout) | ||
28 | formatter = Formatter('%(asctime)s %(levelname)s %(name)s %(message)s') | ||
29 | |||
30 | handler.setFormatter(formatter) | ||
31 | root_logger.addHandler(handler) | ||
32 | |||
33 | |||
34 | def inject_logger(cls): | ||
35 | """ | ||
36 | Injects a logger into the kwargs for a class. | ||
37 | """ | ||
38 | @wraps(cls) | ||
39 | def decorator(*args, **kwargs): | ||
40 | inst = args[0] # self | ||
41 | kwargs['logger'] = logging.getLogger('.'.join([inst.__module__, inst.__class__.__name__])) | ||
42 | cls(*args, **kwargs) | ||
43 | |||
44 | return decorator | ||