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入门之语句(if语句、while语句、for语句)
Jan 19 Python
Python函数参数类型*、**的区别
Apr 11 Python
Python遍历文件夹和读写文件的实现代码
Aug 28 Python
浅谈Matplotlib简介和pyplot的简单使用——文本标注和箭头
Jan 09 Python
浅谈Django学习migrate和makemigrations的差别
Jan 18 Python
Python返回数组/List长度的实例
Jun 23 Python
python 剪切移动文件的实现代码
Aug 02 Python
spark dataframe 将一列展开,把该列所有值都变成新列的方法
Jan 29 Python
python实现视频分帧效果
May 31 Python
python分布式编程实现过程解析
Nov 08 Python
PIP和conda 更换国内安装源的方法步骤
Sep 21 Python
用Python将库打包发布到pypi
Apr 13 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
PHP新手上路(八)
2006/10/09 PHP
利用PHP实现短域名互转
2013/07/05 PHP
有关于PHP中常见数据类型的汇总分享
2014/01/06 PHP
php操作mongodb封装类与用法实例
2018/09/01 PHP
laravel返回统一格式错误码问题
2019/11/04 PHP
ajax不执行success回调而是执行了error回调
2012/12/10 Javascript
jquery mobile实现拨打电话功能的几种方法
2013/08/05 Javascript
两个多选select(multiple左右)添加、删除选项和取值实例
2014/05/12 Javascript
jquery ztree实现下拉树形框使用到了json数据
2014/05/14 Javascript
jquery 根据name名获取元素的value值
2015/02/27 Javascript
JavaScript实现将数组中所有元素连接成一个字符串的方法
2015/04/06 Javascript
浅谈javascript:两种注释,声明变量,定义函数
2016/10/05 Javascript
jQuery中animate()的使用方法及解决$(”body“).animate({“scrollTop”:top})不被Firefox支持的问题
2017/04/04 jQuery
详解vue使用$http服务端收不到参数
2019/04/19 Javascript
vue路由传参页面刷新参数丢失问题解决方案
2019/10/08 Javascript
JavaScript如何借用构造函数继承
2019/11/06 Javascript
vue 在methods中调用mounted的实现操作
2020/08/07 Javascript
[02:00]DAC2018主宣传片——龙征四海,剑问东方
2018/03/20 DOTA
python图像处理之反色实现方法
2015/05/30 Python
在类Unix系统上开始Python3编程入门
2015/08/20 Python
Python实现定时任务
2017/02/08 Python
值得收藏,Python 开发中的高级技巧
2018/11/23 Python
在Python运行时动态查看进程内部信息的方法
2019/02/22 Python
pytorch中tensor张量数据类型的转化方式
2019/12/31 Python
基于Python获取docx/doc文件内容代码解析
2020/02/17 Python
解决python中显示图片的plt.imshow plt.show()内存泄漏问题
2020/04/24 Python
实例教程 纯CSS3打造非常炫的加载动画效果
2014/11/05 HTML / CSS
美国LOGO设计公司:The Logo Company
2018/07/16 全球购物
SmartBuyGlasses德国:购买太阳镜和眼镜
2019/08/20 全球购物
斯洛伐克家具和时尚装饰品购物网站:Butlers.sk
2019/09/08 全球购物
世界上最伟大的马产品:Equiderma
2020/01/07 全球购物
计算机软件个人的自荐信范文
2013/12/01 职场文书
cf战队收人广告词
2014/03/14 职场文书
员工加薪申请报告
2015/05/15 职场文书
食堂卫生管理制度
2015/08/04 职场文书
《一面五星红旗》教学反思
2016/02/23 职场文书