python logging 模块记录日志

 

#日志记录到多文件示例

 1 import logging
 2 
 3 def error_log(message):
 4     file_1_1 = logging.FileHandler('error.log', 'a+', encoding='utf-8')
 5     fmt = logging.Formatter(fmt="%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s")
 6     file_1_1.setFormatter(fmt)
 7     # 创建日志对象
 8     logger1 = logging.Logger('error', level=logging.ERROR)
 9     # 日志对象和文件对象创建关系
10     logger1.addHandler(file_1_1)
11 
12     logger1.log(logging.FATAL,message)
13 
14 def run_log(message):
15     file_1_1 = logging.FileHandler('run.log', 'a+', encoding='utf-8')
16     fmt = logging.Formatter(fmt="%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s")
17     file_1_1.setFormatter(fmt)
18     # 创建日志对象
19     logger1 = logging.Logger('run', level=logging.ERROR)
20     # 日志对象和文件对象创建关系
21     logger1.addHandler(file_1_1)
22 
23     logger1.log(logging.FATAL,message)


 #日志记录到单个文件示例

 

import  logging
logging.basicConfig(
filename="11.log",
format="%(asctime)s - %(name)s - %(levelname)s - %(module)s : %(message)s",
datefmt='%Y-%m-%d %H:%M:%S %p',
level=logging.INFO
)
logging.log(logging.ERROR,"MESSAGE....")



#单例模式
 1 import  logging
 2 
 3 class LoggerHelper(object):
 4     _i = None
 5 
 6     @classmethod
 7     def instance(cls):
 8         if cls._i:
 9             return cls._i
10         else:
11             cls._i = LoggerHelper() #LoggerHelper()
12             return cls._i # obj
13 
14     def __init__(self):
15         error_log = logging.FileHandler('error.log', 'a+', encoding='utf-8')
16         fmt = logging.Formatter(fmt="%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s")
17         error_log.setFormatter(fmt)
18         # 创建日志对象
19         error_logger = logging.Logger('error', level=logging.ERROR)
20         # 日志对象和文件对象创建关系
21         error_logger.addHandler(error_log)
22         self.error_logger = error_logger
23 
24         run_log = logging.FileHandler('run.log', 'a+', encoding='utf-8')
25         fmt = logging.Formatter(fmt="%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s")
26         run_log.setFormatter(fmt)
27         # 创建日志对象
28         run_logger = logging.Logger('run', level=logging.ERROR)
29         # 日志对象和文件对象创建关系
30         run_logger.addHandler(run_log)
31         self.run_logger = run_logger
32 
33 
34 if __name__ == '__main__':
35     #调用
36     # 单例模式,用户获得第一次创建的对象
37     obj1 = LoggerHelper.instance()
38     obj1.run_logger.log(logging.FATAL,'asdfasdfasdfasdf')
39 
40     obj2 = LoggerHelper.instance()
41     obj2.run_logger.log(logging.FATAL,'asdfasdfasdfasdf')
42 
43     obj3 = LoggerHelper.instance()
44     obj3.run_logger.log(logging.FATAL,'asdfasdfasdfasdf')

 #只创建一个实例的设计模式

cls为类名

 1 class Foo(object):
 2     _i = None
 3     def __init__(self):
 4         self.n = 123
 5     def __new__(cls, *args, **kwargs):
 6         if cls._i:
 7             return cls._i
 8         else:
 9             o = object.__new__(cls,*args,**kwargs)
10             cls._i = o
11             return cls._i
12         
13 obj1 = Foo()
14 obj2 = Foo()

 

posted @ 2017-04-22 15:13  李瑞鑫  阅读(383)  评论(0编辑  收藏  举报