• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Trae
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
kidword
博客园    首页    新随笔    联系   管理    订阅  订阅
python自定义logger日志输出文件
python自定义日志logging,方便记录捕获你的代码信息。

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.执行结果

 

 

 

 

 

 

 

posted on 2020-01-10 11:52  kidword  阅读(1216)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3