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 pass 语句使用示例
Mar 11 Python
Python开发的单词频率统计工具wordsworth使用方法
Jun 25 Python
Python实现基于HTTP文件传输实例
Nov 08 Python
Python基于贪心算法解决背包问题示例
Nov 27 Python
python实现简单淘宝秒杀功能
May 03 Python
python实现AES加密与解密
Mar 28 Python
详解python爬虫系列之初识爬虫
Apr 06 Python
Python使用百度api做人脸对比的方法
Aug 28 Python
python 矢量数据转栅格数据代码实例
Sep 30 Python
在Python中利用pickle保存变量的实例
Dec 30 Python
pyecharts动态轨迹图的实现示例
Apr 17 Python
Python使用PyYAML库读写yaml文件的方法
Apr 06 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 include加载文件两种方式效率比较
2010/08/08 PHP
PHP查询网站的PR值
2013/10/30 PHP
php实现查询功能(数据访问)
2017/05/23 PHP
PHP单例模式与工厂模式详解
2017/08/29 PHP
PHP使用PDO操作sqlite数据库应用案例
2019/03/07 PHP
javascript 操作文件 实现方法小结
2009/07/02 Javascript
jquery jqPlot API 中文使用教程(非常强大的图表工具)
2011/08/15 Javascript
Jquery实现简单的动画效果代码
2012/03/18 Javascript
Jquery实现鼠标移动放大图片功能实例
2015/03/25 Javascript
jquery通过扩展select控件实现支持enter或focus选择的方法
2015/11/19 Javascript
jQuery移动web开发中的页面初始化与加载事件
2015/12/03 Javascript
JavaScrip常见的一些算法总结
2015/12/28 Javascript
AngularJS 服务详细讲解及示例代码
2016/08/17 Javascript
jQuery绑定事件的四种方式介绍
2016/10/31 Javascript
JavaScript轮播图简单制作方法
2017/02/20 Javascript
基于vue2.0+vuex的日期选择组件功能实现
2017/03/13 Javascript
微信小程序 图片宽度自适应的实现
2017/04/06 Javascript
JS+HTML5实现上传图片预览效果完整实例【测试可用】
2017/04/20 Javascript
JavaScript hasOwnProperty() 函数实例详解
2017/08/04 Javascript
基于Vue.js+Nuxt开发自定义弹出层组件
2020/10/09 Javascript
使用Vue实现一个树组件的示例
2020/11/06 Javascript
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
python 性能提升的几种方法
2016/07/15 Python
PyTorch读取Cifar数据集并显示图片的实例讲解
2018/07/27 Python
python中的json总结
2018/10/11 Python
python中pdb模块实例用法
2021/01/15 Python
报告会主持词
2014/04/02 职场文书
临床护理求职信
2014/04/26 职场文书
冬季安全检查方案
2014/05/23 职场文书
给校长的建议书范文
2015/09/14 职场文书
2016暑期政治学习心得体会
2016/01/23 职场文书
民事纠纷协议书
2016/03/23 职场文书
市直属机关2016年主题党日活动总结
2016/04/05 职场文书
vue前端工程的搭建
2021/03/31 Vue.js
安装pytorch时报sslerror错误的解决方案
2021/05/17 Python
详解Java实践之建造者模式
2021/06/18 Java/Android