python logging模块书写日志以及日志分割详解


Posted in Python onJuly 22, 2019

本文范例是书写两个日志:错误日志(ERROR级别)和运行日志(DEBUG级别),其中运行日志每日凌晨进行分割

import logging,datetime,logging.handlers
from conf import settings
 
if __name__ == "__main__":
  #两个日志,错误日志和运行日志,输出文件路径及文件名
  error_log = settings.ERROR_LOG_FILE
  run_log = settings.RUN_LOG_FILE
 
  logger = logging.getLogger("mylog")
  logger.setLevel(logging.DEBUG)
 
  DATE_FORMAT = "%Y-%m-%d %H:%M:%S %p"
  LOG_FORMAT = "%(asctime)s------%(levelname)s[:%(lineno)d]-------%(message)s"
  #第一种普通写法
  #file_run_log = logging.FileHandler(run_log)
  #假如需要每日凌晨进行日志切割,注意导入模块时需要导入logging.handlers,否则报错
  #when参数可以设置S M H D,分别是秒、分、小时、天分割,也可以按周几分割,也可以凌晨分割
  file_run_log = rf_handler = logging.handlers.TimedRotatingFileHandler(run_log, when='midnight', interval=1, backupCount=7, atTime=datetime.time(0, 0, 0, 0))
 
  file_error_log = logging.FileHandler(error_log)
 
  file_run_log.setLevel(level=logging.INFO)
  file_run_log.setFormatter(logging.Formatter(LOG_FORMAT))
  file_error_log.setLevel(level=logging.ERROR)
  file_error_log.setFormatter(logging.Formatter(LOG_FORMAT))
 
  logger.addHandler(file_run_log)
  logger.addHandler(file_error_log)
 
  logger.info("info test")
  logger.error("error test")
  logger.critical("critical test")
 
 
 
  #普通全局写法
  # logging.basicConfig(level=logging.DEBUG,filename=run_log,format=LOG_FORMAT,datefmt=DATE_FORMAT)
 
  # logging.info("this is a log")
  # logging.warning("this is warning")

settings.py:

ERROR_LOG_FILE = os.path.join(BASE_DIR,"log","error.log")
RUN_LOG_FILE = os.path.join(BASE_DIR,"log","run.log")

日志输出结果run.log:

python logging模块书写日志以及日志分割详解

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现杨辉三角思路
Jul 14 Python
分享几道你可能遇到的python面试题
Jul 24 Python
Python+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能示例
Aug 31 Python
Matplotlib 生成不同大小的subplots实例
May 25 Python
Flask框架信号用法实例分析
Jul 24 Python
详解Python下Flask-ApScheduler快速指南
Nov 04 Python
使用python实现unix2dos和dos2unix命令的例子
Aug 13 Python
pytorch 彩色图像转灰度图像实例
Jan 13 Python
keras 多任务多loss实例
Jun 22 Python
如何用python写个模板引擎
Jan 14 Python
Python批量将csv文件转化成xml文件的实例
May 10 Python
Python实现批量将文件复制到新的目录中再修改名称
Apr 12 Python
使用 Python 快速实现 HTTP 和 FTP 服务器的方法
Jul 22 #Python
Django框架静态文件使用/中间件/禁用ip功能实例详解
Jul 22 #Python
python多进程下实现日志记录按时间分割
Jul 22 #Python
Django框架自定义模型管理器与元选项用法分析
Jul 22 #Python
python实现日志按天分割
Jul 22 #Python
python re.sub()替换正则的匹配内容方法
Jul 22 #Python
简单了解python gevent 协程使用及作用
Jul 22 #Python
You might like
提示Trying to clone an uncloneable object of class Imagic的解决
2011/10/27 PHP
php常用hash加密函数
2014/11/22 PHP
php文件缓存类用法实例分析
2015/04/22 PHP
php上传大文件失败的原因及应对策略
2015/10/20 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
Stop SQL Server
2007/06/21 Javascript
javascript HTMLEncode HTMLDecode的完整实例(兼容ie和火狐)
2009/06/02 Javascript
JavaScript Event学习第十一章 按键的检测
2010/02/10 Javascript
JavaScript实现GriwView单列全选(自写代码)
2013/05/13 Javascript
文件编码导致jquery失效的解决方法
2013/06/26 Javascript
jQuery中prepend()方法用法实例
2014/12/25 Javascript
jQuery插件slick实现响应式移动端幻灯片图片切换特效
2015/04/12 Javascript
分享12个实用的jQuery代码片段
2016/03/09 Javascript
分享10个优化代码的CSS和JavaScript工具
2016/05/11 Javascript
微信小程序上传图片到服务器实例代码
2017/11/07 Javascript
angularjs实现分页和搜索功能
2018/01/03 Javascript
详解vue-element Tree树形控件填坑路
2019/03/26 Javascript
python通过索引遍历列表的方法
2015/05/04 Python
深入解读Python解析XML的几种方式
2016/02/16 Python
windows7 32、64位下python爬虫框架scrapy环境的搭建方法
2018/11/29 Python
解决PyCharm不运行脚本,而是运行单元测试的问题
2019/01/17 Python
python 定义类时,实现内部方法的互相调用
2019/12/25 Python
Python中用pyinstaller打包时的图标问题及解决方法
2020/02/17 Python
Python基于pip实现离线打包过程详解
2020/05/15 Python
如何用python批量调整视频声音
2020/12/22 Python
Application Cache未缓存文件无法访问无法加载问题
2014/05/31 HTML / CSS
VSCode 自定义html5模板的实现
2019/12/05 HTML / CSS
Mountain Hardwear官网:攀岩服装和户外装备
2019/09/26 全球购物
中海讯通笔试题
2015/09/15 面试题
服装销售人员求职自我评价
2013/09/26 职场文书
党员公开承诺书范文
2014/03/25 职场文书
人民调解员培训方案
2014/06/05 职场文书
出国签证在职证明范本
2014/11/24 职场文书
会计求职自荐信范文
2015/03/04 职场文书
学术会议领导致辞
2015/07/29 职场文书
OpenCV项目实践之停车场车位实时检测
2022/04/11 Python