37,719
社区成员
发帖
与我相关
我的任务
分享
#! /usr/bin/env python
#coding=utf-8
import logging
import traceback
import os
class Log(object):
def __init__(self, logger, file_handler_name):
self.loggerName = logger
self.logger = logging.getLogger(logger)
self.formatter = logging.Formatter( ("================================\n"
"time:%(asctime)s\nlogger:%(name)s\nlevel:%(levelname)s\n"
"file:%(filename)s\nfun:%(funcName)s\nlineno:%(lineno)d\n"
"message:%(message)s" ))
log_file_path = os.path.abspath(os.path.dirname(__file__)) + '/log/'
if os.path.isdir(log_file_path) == False:#如果log_file_path应该存在,则返回true
os.makedirs(log_file_path)
file_handler = logging.FileHandler(log_file_path + file_handler_name)
file_handler.setLevel(logging.ERROR)
file_handler.setFormatter(self.formatter)
self.logger.addHandler(file_handler)
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.INFO)
console_handler.setFormatter(self.formatter)
self.logger.addHandler(console_handler)
def info(self, *msg):
try:
tmp = [msg[0]]
tmp.append(traceback.format_exc())
self.logger.info("\n****************\n".join(tmp))
except Exception, e:
print e
def error(self, *msg):
try:
tmp = [msg[0]]
tmp.append(traceback.format_exc())
self.logger.error("\n****************\n".join(tmp))
except Exception, e:
print e
if __name__ == "__main__":
test_log = Log('test', 'test.log')
test_log.info("this is a test log")
try:
print 1/0
except Exception, e:
msg = 'my message'
test_log.error(msg)