-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathenv.py
49 lines (36 loc) · 1.16 KB
/
env.py
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
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import logging
import os
__ready__ = False
def _get_log_level():
loglevel = os.getenv("LOG_LEVEL", "INFO")
numeric_level = getattr(logging, loglevel.upper(), None)
if not isinstance(numeric_level, int):
raise ValueError('Invalid log level: %s' % loglevel)
return numeric_level
def _init_logger():
formatter = logging.Formatter(fmt='%(asctime)s - %(levelname)s - %(module)s - %(message)s')
outdir = os.getenv("ZB_OUT_DIR", "out")
handler = logging.FileHandler(outdir + '/application.log')
handler.setLevel(_get_log_level())
handler.setFormatter(formatter)
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
ch.setFormatter(formatter)
l = logging.getLogger()
l.setLevel(logging.DEBUG)
l.addHandler(handler)
l.addHandler(ch)
def init():
"""ready the environment"""
global __ready__
if not __ready__:
_init_logger()
__ready__ = True
def logger():
"""get a logger"""
if not __ready__:
init()
return logging.getLogger()