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操作MySQL数据库具体方法
Oct 28 Python
python实现超简单端口转发的方法
Mar 13 Python
python处理图片之PIL模块简单使用方法
May 11 Python
详解Golang 与python中的字符串反转
Jul 21 Python
学习Python3 Dlib19.7进行人脸面部识别
Jan 24 Python
对numpy 数组和矩阵的乘法的进一步理解
Apr 04 Python
python实现基于信息增益的决策树归纳
Dec 18 Python
一步步教你用python的scrapy编写一个爬虫
Apr 17 Python
python 实现识别图片上的数字
Jul 30 Python
Django框架 信号调度原理解析
Sep 04 Python
Pytorch 定义MyDatasets实现多通道分别输入不同数据方式
Jan 15 Python
Pygame框架实现飞机大战
Aug 07 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中的null合并运算符
2015/12/30 PHP
PHP如何搭建百度Ueditor富文本编辑器
2018/09/21 PHP
php7新特性的理解和比较总结
2019/04/14 PHP
jQuery 加上最后自己的验证
2009/11/04 Javascript
Javascript 倒计时源代码.(时.分.秒) 详细注释版
2011/05/09 Javascript
jquery ui bootstrap 实现自定义风格
2014/11/14 Javascript
js查找节点的方法小结
2015/01/13 Javascript
基于jQuery实现点击弹出层实例代码
2016/01/01 Javascript
Jquery easyui开启行编辑模式增删改操作
2016/01/14 Javascript
jQuery对象与DOM对象转换方法详解
2016/05/10 Javascript
jQuery图片轮播插件——前端开发必看
2016/05/31 Javascript
js eval函数使用,js对象和字符串互转实例
2017/03/06 Javascript
js/jq仿window文件夹移动/剪切/复制等操作代码
2017/03/08 Javascript
vue.js input框之间赋值方法
2018/08/24 Javascript
JavaScript对JSON数组简单排序操作示例
2019/01/31 Javascript
详解webpack4.x之搭建前端开发环境
2019/03/28 Javascript
JavaScript页面倒计时功能完整示例
2019/05/15 Javascript
Vue v-text指令简单使用方法示例
2019/09/19 Javascript
ES6中let、const的区别及变量的解构赋值操作方法实例分析
2019/10/15 Javascript
mpvue实现小程序签到金币掉落动画(api实现)
2019/10/17 Javascript
python插入排序算法实例分析
2015/07/03 Python
基于Python数据可视化利器Matplotlib,绘图入门篇,Pyplot详解
2017/10/13 Python
python实现类之间的方法互相调用
2018/04/29 Python
numpy 进行数组拼接,分别在行和列上合并的实例
2018/05/08 Python
python之拟合的实现
2019/07/19 Python
Python OpenCV图像指定区域裁剪的实现
2019/10/30 Python
浅析Python 序列化与反序列化
2020/08/05 Python
纯CSS3实现的8种Loading动画效果
2014/07/05 HTML / CSS
详解基于 Canvas 手撸一个六边形能力图
2019/09/02 HTML / CSS
Under Armour美国官网:美国知名高端功能性运动品牌
2016/09/05 全球购物
班主任工作年限证明
2014/01/12 职场文书
2014年保安个人工作总结
2014/11/13 职场文书
2016优秀大学生个人事迹材料范文
2016/03/01 职场文书
Pytorch中使用ImageFolder读取数据集时忽略特定文件
2022/03/23 Python
Python PIL按比例裁剪图片
2022/05/11 Python
vscode内网访问服务器的方法
2022/06/28 Servers