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的*args和**kwargs用法
Nov 01 Python
深入理解Python中装饰器的用法
Jun 28 Python
python使用Apriori算法进行关联性解析
Dec 21 Python
TensorFlow 模型载入方法汇总(小结)
Jun 19 Python
对python添加模块路径的三种方法总结
Oct 16 Python
windows7 32、64位下python爬虫框架scrapy环境的搭建方法
Nov 29 Python
python实现创建新列表和新字典,并使元素及键值对全部变成小写
Jan 15 Python
网易2016研发工程师编程题 奖学金(python)
Jun 19 Python
python 协程中的迭代器,生成器原理及应用实例详解
Oct 28 Python
OpenCV中VideoCapture类的使用详解
Feb 14 Python
关于python的缩进规则的知识点详解
Jun 22 Python
Matlab求解数组中的最大值及它所在的具体位置
Apr 16 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 var_dump()函数的详解
2013/06/05 PHP
dedecms函数分享之获取某一栏目所有子栏目
2014/05/19 PHP
js+php实现静态页面实时调用用户登陆状态的方法
2015/01/04 PHP
PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案
2016/09/19 PHP
PHP精确到毫秒秒杀倒计时实例详解
2019/03/14 PHP
Prototype PeriodicalExecuter对象 学习
2009/07/19 Javascript
jquery插件制作 自增长输入框实现代码
2012/08/17 jQuery
JavaScript实现复制功能各浏览器支持情况实测
2013/07/18 Javascript
jquery实现input输入框实时输入触发事件代码
2014/01/28 Javascript
jQuery中get和post方法传值测试及注意事项
2014/08/08 Javascript
Lua表达式和控制结构学习笔记
2014/12/15 Javascript
原生JS实现获取及修改CSS样式的方法
2018/09/04 Javascript
js限制input只能输入有效的数字(第一个不能是小数点)
2018/09/28 Javascript
JS使用Dijkstra算法求解最短路径
2019/01/17 Javascript
vue element upload组件 file-list的动态绑定实现
2019/10/11 Javascript
基于JS实现父组件的请求服务过程解析
2019/10/14 Javascript
JavaScript计算正方形面积
2019/11/26 Javascript
使用vue-cli4.0快速搭建一个项目的方法步骤
2019/12/04 Javascript
js String.prototype.trim字符去前后空格的扩展
2020/08/23 Javascript
小程序实现录音功能
2020/09/22 Javascript
Python中获取网页状态码的两个方法
2014/11/03 Python
python识别文字(基于tesseract)代码实例
2019/08/24 Python
Python实现图片批量加入水印代码实例
2019/11/30 Python
Pyqt5 关于流式布局和滚动条的综合使用示例代码
2020/03/24 Python
python安装cx_Oracle和wxPython的方法
2020/09/14 Python
python 爬取百度文库并下载(免费文章限定)
2020/12/04 Python
python中xlutils库用法浅析
2020/12/29 Python
Python3利用openpyxl读写Excel文件的方法实例
2021/02/03 Python
杰夫·班克斯男士服装网上商店:Jeff Banks
2019/10/24 全球购物
深圳茁壮笔试题
2015/05/28 面试题
业务代表的岗位职责
2013/11/16 职场文书
2015年毕业生自我鉴定模板
2014/09/19 职场文书
2015年读书月活动总结
2015/03/26 职场文书
办公室行政主管岗位职责
2015/04/09 职场文书
Python批量将csv文件转化成xml文件的实例
2021/05/10 Python
Vue通过懒加载提升页面响应速度
2021/05/10 Vue.js