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中isnumeric()方法的使用简介
May 19 Python
Python中read()、readline()和readlines()三者间的区别和用法
Jul 30 Python
python多进程实现进程间通信实例
Nov 24 Python
python cs架构实现简单文件传输
Mar 20 Python
Python从文件中读取数据的方法讲解
Feb 14 Python
Pytorch提取模型特征向量保存至csv的例子
Jan 03 Python
解析PyCharm Python运行权限问题
Jan 08 Python
Python3爬虫关于识别检验滑动验证码的实例
Jul 30 Python
Python模拟登录和登录跳转的参考示例
Oct 30 Python
如何一键升级Python所有包
Nov 05 Python
python实现计算图形面积
Feb 22 Python
python 如何在 Matplotlib 中绘制垂直线
Apr 02 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 中dirname(_file_)讲解
2007/03/18 PHP
php流量统计功能的实现代码
2012/09/29 PHP
php语言流程控制中的主动与被动
2012/11/05 PHP
php上传文件常见问题总结
2015/02/03 PHP
PHP HTTP 认证实例详解
2016/11/03 PHP
javascript笔试题目附答案@20081025_jb51.net
2008/10/26 Javascript
深入理解JavaScript系列(8) S.O.L.I.D五大原则之里氏替换原则LSP
2012/01/15 Javascript
js鼠标滑过弹出层的定位IE6bug解决办法
2012/12/26 Javascript
ie支持function.bind()方法实现代码
2012/12/27 Javascript
JS验证日期的格式YYYY-mm-dd 具体实现
2013/06/29 Javascript
JavaScript中window.showModalDialog()用法详解
2014/12/18 Javascript
12306验证码破解思路分享
2015/03/25 Javascript
drag-and-drop实现图片浏览器预览
2015/08/06 Javascript
asp.net+jquery.form实现图片异步上传的方法(附jquery.form.js下载)
2016/05/05 Javascript
jQuery控制li上下循环滚动插件用法实例(附demo源码下载)
2016/05/28 Javascript
无缝滚动的简单实现代码(推荐)
2016/06/07 Javascript
jQuery插件echarts实现的循环生成图效果示例【附demo源码下载】
2017/03/04 Javascript
微信小程序实现图片压缩功能
2018/01/26 Javascript
微信小程序实现语音识别转文字功能及遇到的坑
2019/08/02 Javascript
在Vue中使用mockjs代码实例
2020/11/25 Vue.js
用python爬取历史天气数据的方法示例
2019/12/30 Python
python GUI库图形界面开发之PyQt5滚动条控件QScrollBar详细使用方法与实例
2020/03/06 Python
Softmax函数原理及Python实现过程解析
2020/05/22 Python
python适合做数据挖掘吗
2020/06/16 Python
Python判断变量是否是None写法代码实例
2020/10/09 Python
HTML5中的autofocus(自动聚焦)属性介绍
2014/04/23 HTML / CSS
牵手50台湾:专为黄金岁月的单身人士而设的交友网站
2021/02/18 全球购物
医护人员英文求职信范文
2013/11/26 职场文书
小学教师培训方案
2014/06/09 职场文书
入党积极分子自我批评思想汇报
2014/10/10 职场文书
缓刑人员思想汇报
2014/10/11 职场文书
2015毕业生实习工作总结
2014/12/12 职场文书
淮阳太昊陵导游词
2015/02/10 职场文书
2016年寒假社会实践活动总结
2015/10/10 职场文书
Nginx配置文件详解以及优化建议指南
2021/09/15 Servers
详解Oracle块修改跟踪功能
2021/11/07 Oracle