1 """
2 日志处理器
3 """
4
5 import logging
6 import settings
7
8
9 def get_logger(name='WJ-test', file='WJ-test.log',
10 fmt='%(levelname)s %(asctime)s [%(filename)s-->line:%(lineno)d]:%(message)s',
11 debug=False):
12 if debug:
13 # 如果开启了调试模式
14 file_level = logging.DEBUG
15 console_level = logging.DEBUG
16 else:
17 file_level = logging.WARNING
18 console_level = logging.INFO
19
20 logger = logging.getLogger(name)
21
22 logger.setLevel(logging.DEBUG) # 设置等级
23 # 2. 创建日志处理器
24 file_handler = logging.FileHandler(filename=file, encoding='utf-8')
25 file_handler.setLevel(file_level) # 设置写入文件的日志等级
26
27 console_handler = logging.StreamHandler()
28 console_handler.setLevel(console_level) # 设置控制台输出日志的等级
29
30 # 3. 创建格式化器
31 formatter = logging.Formatter(fmt=fmt)
32
33 # 4. 把格式化器添加到日志处理器上
34 file_handler.setFormatter(formatter)
35 console_handler.setFormatter(formatter)
36
37 # 5. 把日志处理器添加到日志器
38 logger.addHandler(file_handler)
39 logger.addHandler(console_handler)
40 return logger
41
42
43 logger = get_logger(**settings.LOG_CONFIG)
44
45 print(logger.handlers)
46 print(id(logger))
47 logger.info('this is a info---1')
48 log = get_logger()
49 print(id(log))
50 print(log.handlers)
51 log.info('this is a info')