-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathlog.py
34 lines (28 loc) · 1.04 KB
/
log.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
import logging
from logging import handlers
import os
import random
def logger(logFile=None, setLevel="INFO", identity="", loggerName="elife-bot"):
"""
Create a logger, by specifying a unique (or same) logFile,
set the level of logging, and optional identity for what is
sending logging message, to identify multiple workers
"""
logger = logging.getLogger(loggerName)
if logFile:
hdlr = handlers.WatchedFileHandler(os.getcwd() + os.sep + logFile)
else:
# No log file provided, use the stream handler
hdlr = logging.StreamHandler()
formatter = logging.Formatter(
"%(asctime)s %(levelname)s " + identity + " %(message)s", "%Y-%m-%dT%H:%M:%SZ"
)
hdlr.setFormatter(formatter)
logger.addHandler(hdlr)
logger.setLevel(eval("logging." + setLevel))
return logger
def identity(process_name):
return "%s_%s" % (process_name, int(random.random() * 1000))
def create_log(log_file, set_level, identity):
"create a log file"
return logger(log_file, set_level, identity)