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 相关文章推荐
windows 下python+numpy安装实用教程
Dec 23 Python
下载python中Crypto库报错:ModuleNotFoundError: No module named ‘Crypto’的解决
Apr 23 Python
详解如何用django实现redirect的几种方法总结
Nov 22 Python
使用pandas把某一列的字符值转换为数字的实例
Jan 29 Python
python实现合并多个list及合并多个django QuerySet的方法示例
Jun 11 Python
Python3 执行Linux Bash命令的方法
Jul 12 Python
python psutil模块使用方法解析
Aug 01 Python
Python FtpLib模块应用操作详解
Dec 12 Python
Django 用户登陆访问限制实例 @login_required
May 13 Python
Python如何实现自带HTTP文件传输服务
Jul 08 Python
Python2.6版本pip安装步骤解析
Aug 17 Python
Python Pandas解析读写 CSV 文件
Apr 11 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.NET的入门教程
2006/10/09 PHP
PHP初学入门
2006/11/19 PHP
php 友好URL的实现(吐血推荐)
2008/10/04 PHP
PHP获取搜索引擎关键字来源的函数(支持百度和谷歌等搜索引擎)
2012/10/03 PHP
浅谈Yii乐观锁的使用及原理
2017/07/25 PHP
jquery插件制作 自增长输入框实现代码
2012/08/17 jQuery
JS验证日期的格式YYYY-mm-dd 具体实现
2013/06/29 Javascript
checkbox全选所涉及到的知识点介绍
2013/12/31 Javascript
js字符串日期yyyy-MM-dd转化为date示例代码
2014/03/06 Javascript
javascript中的括号()用法小结
2014/04/14 Javascript
jquery JSON的解析方式示例介绍
2014/07/27 Javascript
js显示文本框提示文字的方法
2015/05/07 Javascript
JavaScript实现算术平方根算法-代码超简单
2015/09/11 Javascript
使用plupload自定义参数实现多文件上传
2016/07/19 Javascript
在Docker快速部署Node.js应用的详细步骤
2016/09/02 Javascript
js基础之DOM中元素对象的属性方法详解
2016/10/28 Javascript
js实现QQ面板拖拽效果(慕课网DOM事件探秘)(全)
2017/09/19 Javascript
修改npm全局安装模式的路径方法
2018/05/15 Javascript
jQuery实现鼠标拖拽登录框移动效果
2020/09/13 jQuery
原生js实现俄罗斯方块
2020/10/20 Javascript
vant-ui框架的一个bug(解决切换后onload不触发)
2020/11/11 Javascript
Python 解析XML文件
2009/04/15 Python
简单了解python代码优化小技巧
2019/07/08 Python
Python小整数对象池和字符串intern实例解析
2020/03/21 Python
Python selenium爬取微博数据代码实例
2020/05/22 Python
python+flask编写一个简单的登录接口
2020/11/13 Python
scrapy redis配置文件setting参数详解
2020/11/18 Python
Expedia印度尼西亚站:预订酒店、廉价航班和度假套餐
2018/01/31 全球购物
华三通信H3C面试题
2015/05/15 面试题
好邻里事迹材料
2014/01/16 职场文书
干部作风整顿个人剖析材料
2014/10/06 职场文书
房产分割协议书范文
2014/11/21 职场文书
小学教师岗位职责
2015/04/02 职场文书
详解Redis瘦身指南
2021/05/26 Redis
Python数据处理的三个实用技巧分享
2022/04/01 Python