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入门篇之对象类型
Oct 17 Python
使用python实现省市三级菜单效果
Jan 20 Python
Python 出现错误TypeError: ‘NoneType’ object is not iterable解决办法
Jan 12 Python
Python 编码Basic Auth使用方法简单实例
May 25 Python
对python中array.sum(axis=?)的用法介绍
Jun 28 Python
django rest framework 实现用户登录认证详解
Jul 29 Python
MxNet预训练模型到Pytorch模型的转换方式
May 25 Python
python实例化对象的具体方法
Jun 17 Python
详解pycharm2020.1.1专业版安装指南(推荐)
Aug 07 Python
python文件路径操作方法总结
Dec 21 Python
pandas 数据类型转换的实现
Dec 29 Python
python中四舍五入的正确打开方式
Jan 18 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 构造函数construct的前下划线是双的_
2009/12/08 PHP
php+mysqli使用预处理技术进行数据库查询的方法
2015/01/28 PHP
浅谈PHP接收POST数据方式
2015/06/05 PHP
浅谈php+phpStorm+xdebug配置方法
2015/09/17 PHP
PHP中配置IIS7实现基本身份验证的方法
2015/09/24 PHP
JavaScript入门教程(12) js对象化编程
2009/01/31 Javascript
js 编程笔记 无名函数
2011/06/28 Javascript
JQuery中SetTimeOut传参问题探讨
2013/05/10 Javascript
简单的两种Extjs formpanel加载数据的方式
2013/11/09 Javascript
JS实现字体选色板实例代码
2013/11/20 Javascript
jquery 取子节点及当前节点属性值
2014/07/25 Javascript
使用javascript提交form表单方法汇总
2015/06/25 Javascript
Js动态设置rem来实现移动端字体的自适应代码
2016/10/14 Javascript
Java  Spring 事务回滚详解
2016/10/17 Javascript
Angular.js通过自定义指令directive实现滑块滑动效果
2017/10/13 Javascript
angular.js实现列表orderby排序的方法
2018/10/02 Javascript
layui的数据表格+springmvc实现搜索功能的例子
2019/09/28 Javascript
python遍历文件夹并删除特定格式文件的示例
2014/03/05 Python
跟老齐学Python之玩转字符串(2)更新篇
2014/09/28 Python
Python面向对象程序设计类的封装与继承用法示例
2019/04/12 Python
Python redis操作实例分析【连接、管道、发布和订阅等】
2019/05/16 Python
Python3 Tkinter选择路径功能的实现方法
2019/06/14 Python
python利用datetime模块计算程序运行时间问题
2020/02/20 Python
Python实现在线批量美颜功能过程解析
2020/06/10 Python
eDreams葡萄牙:全球最大的在线旅行社之一
2019/04/15 全球购物
Vrbo西班牙:预订您的度假公寓(公寓、乡村房屋…)
2020/04/27 全球购物
实习生自我鉴定
2013/12/12 职场文书
大学生职业生涯规划方案
2014/01/03 职场文书
环保专业大学生职业规划设计
2014/01/10 职场文书
安全环保演讲稿
2014/08/28 职场文书
2014年个人技术工作总结
2014/12/08 职场文书
高三语文复习计划
2015/01/19 职场文书
安全生产感想
2015/08/07 职场文书
MySQL之高可用集群部署及故障切换实现
2021/04/22 MySQL
关于redisson缓存序列化几枚大坑说明
2021/08/04 Redis
Python+Selenium实现读取网易邮箱验证码
2022/03/13 Python