/usr/share/pyshared/jsb/utils/log.py is in jsonbot 0.84.4-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 | # jsb/utils/log.py
#
#
""" log module. """
## jsb import
from jsb.lib.datadir import getdatadir
## basic imports
import logging
import logging.handlers
import os
import os.path
import getpass
## defines
ERASE_LINE = '\033[2K'
BOLD='\033[1m'
RED = '\033[91m'
YELLOW = '\033[93m'
GREEN = '\033[92m'
ENDC = '\033[0m'
LEVELS = {'debug': logging.DEBUG,
'info': logging.INFO,
'warning': logging.WARNING,
'warn': logging.WARNING,
'error': logging.ERROR,
'critical': logging.CRITICAL
}
RLEVELS = {logging.DEBUG: 'debug',
logging.INFO: 'info',
logging.WARNING: 'warn',
logging.ERROR: 'error',
logging.CRITICAL: 'critical'
}
def init(d):
try:
import waveapi
except ImportError:
LOGDIR = d + os.sep + "botlogs" # BHJTW change this for debian
try:
ddir = os.sep.join(LOGDIR.split(os.sep)[:-1])
if not os.path.isdir(ddir): os.mkdir(ddir)
except: pass
try:
if not os.path.isdir(LOGDIR): os.mkdir(LOGDIR)
except: pass
return LOGDIR
## setloglevel function
def setloglevel(level_name="warn", colors=True, datadir=None):
""" set loglevel to level_name. """
if not level_name: return
LOGDIR = init(datadir or getdatadir())
format_short = "\033[1m%(asctime)-8s\033[0m -=- %(levelname)-8s -=- \033[93m%(message)-75s\033[0m -=- \033[92m%(module)s.%(funcName)s.%(lineno)s\033[0m -=- \033[94m%(threadName)s\033[0m"
format_short_plain = "%(asctime)-8s -=- %(levelname)-8s -=- %(message)-75s -=- %(module)s.%(funcName)s.%(lineno)s -=- %(threadName)s"
datefmt = '%H:%M:%S'
formatter_short = logging.Formatter(format_short, datefmt=datefmt)
formatter_short_plain = logging.Formatter(format_short_plain, datefmt=datefmt)
try:
import waveapi
except ImportError:
try:
filehandler = logging.handlers.TimedRotatingFileHandler(LOGDIR + os.sep + "jsb.log", 'midnight')
except (IOError, AttributeError), ex:
logging.error("can't create file loggger %s" % str(ex))
filehandler = None
docolors = colors or False
level = LEVELS.get(str(level_name).lower(), logging.NOTSET)
root = logging.getLogger()
root.setLevel(level)
if root and root.handlers:
for handler in root.handlers: root.removeHandler(handler)
ch = logging.StreamHandler()
ch.setLevel(level)
if True:
if docolors: ch.setFormatter(formatter_short)
else: ch.setFormatter(formatter_short_plain)
if filehandler: filehandler.setFormatter(formatter_short_plain)
try: import waveapi
except ImportError:
root.addHandler(ch)
if filehandler: root.addHandler(filehandler)
logging.warn("loglevel is %s (%s)" % (str(level), level_name))
def getloglevel():
import logging
root = logging.getLogger()
return RLEVELS.get(root.level)
|