python自定义logger日志输出文件


1.为什么要写日志?

  方便维护、方便调试代码、项目上线后,发现错误能快速定位到错误代码。

1 # [logger]
2
3 # 默认日志格式
4 DEFAULT_LOG_FMT = '%(asctime)s %(filename)s [line:%(lineno)d] %(levelname)s: %(message)s'
5 # 默认时间格式
6 DEFUALT_LOG_DATEFMT = '%Y-%m-%d %H:%M:%S'
7 # 输出日志路径
8 LOG_OUT_PATH = r'H:/atlas_project/python_project/example/log/'
 1 # -*- coding:utf-8 -*-
 2 import sys
 3 import logging
 4 from time import strftime
 5 from log.setting import DEFAULT_LOG_FMT, DEFUALT_LOG_DATEFMT, LOG_OUT_PATH
 6 
 7 
 8 class Logger(object):
 9     def __init__(self):
10         self._logger = logging.getLogger()
11         self.DEFAULT_LOG_FILENAME = '{0}{1}.log'.format(LOG_OUT_PATH, strftime("%Y-%m-%d"))
12         self.formatter = logging.Formatter(fmt=DEFAULT_LOG_FMT, datefmt=DEFUALT_LOG_DATEFMT)
13         self._logger.addHandler(self._get_file_handler(self.DEFAULT_LOG_FILENAME))
14         self._logger.addHandler(self._get_console_handler())
15         self._logger.setLevel(logging.INFO)  # 默认等级
16 
17     def _get_file_handler(self, filename):
18         filehandler = logging.FileHandler(filename, encoding="utf-8")
19         filehandler.setFormatter(self.formatter)
20         return filehandler
21 
22     def _get_console_handler(self):
23         console_handler = logging.StreamHandler(sys.stdout)
24         console_handler.setFormatter(self.formatter)
25         return console_handler
26 
27     @property
28     def logger(self):
29         return self._logger

2.执行结果

 

 

 

 

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM