import logging
# DEBUG,INFO,WARNING,ERROR严重级别递增,
logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(name)-12s %(levelname)-8s -%(levelname)s %(message)s',
datefmt='%m-%d %H:%M',filename='./XXX.log',filemode='a')
LOG = logging.getLogger(__name__)
LOG.info("info")
LOG.debug("debugxxxx")
# 会新创建一个文件xxx.log,log就会输出到这个文件里
# 最简单的log日志配置
# coding = utf-8 import threading, time, random, logging local = threading.local() class AddLogInfoMiddleware(object): # DJANGO 中间键 def process_request(self, request): try: if request.method == 'GET': local.userid = request.GET.get("ct_user_id") elif request.method == 'POST': local.userid = request.POST.get("ct_user_id") else: local.userid = "request.method not GET or POST,defaultuserid" local.path = request.path local.randomstring = str((int(round(time.time()*1000)))) + str(random.randint(10 ** 4, 10 ** 5)) except Exception as e: print str(e) def process_response(self, request, response): try: del local.userid del local.path del local.randomstring except AttributeError: pass return response class ContextFilter(logging.Filter): def filter(self, record): record.userid = getattr(local, 'userid', "defaultuserid") record.path = getattr(local, 'path', "defaultpath") record.randomstring = getattr(local, 'randomstring', "defaultrandomstring") return True def get_log_object(name): logger = logging.getLogger(name) f = ContextFilter() logger.addFilter(f) return logger