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实现的Google IP 可用性检测脚本
Apr 23 Python
django1.8使用表单上传文件的实现方法
Nov 04 Python
简单谈谈Python流程控制语句
Dec 04 Python
python实现C4.5决策树算法
Aug 29 Python
Python实现批量执行同目录下的py文件方法
Jan 11 Python
pygame实现烟雨蒙蒙下彩虹雨
Nov 11 Python
Python 求数组局部最大值的实例
Nov 26 Python
python中的数组赋值与拷贝的区别详解
Nov 26 Python
Python接口测试数据库封装实现原理
May 09 Python
python爬取豆瓣电影排行榜(requests)的示例代码
Feb 18 Python
django注册用邮箱发送验证码的实现
Apr 18 Python
Python基础之元类详解
Apr 29 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生成带有雪花背景的验证码
2008/09/28 PHP
PHP 木马攻击防御技巧
2009/06/13 PHP
php 高效率写法 推荐
2010/02/21 PHP
php 传值赋值与引用赋值的区别
2010/12/29 PHP
Linux下CoreSeek及PHP扩展模块的安装
2012/09/23 PHP
php写入数据到CSV文件的方法
2015/03/14 PHP
教你php如何实现验证码
2016/01/20 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
2020/02/15 PHP
类似GMAIL的Ajax信息反馈显示
2010/02/16 Javascript
jQuery dialog 异步调用ashx,webservice数据的代码
2010/08/03 Javascript
JS鼠标滑过图片时切换图片实现思路
2013/09/12 Javascript
node.js中的console.info方法使用说明
2014/12/09 Javascript
使用jQuery仿苹果官网焦点图特效
2014/12/23 Javascript
javascript判断复选框是否选中的方法
2015/10/16 Javascript
JS实现的表头列头固定页面功能示例
2017/01/10 Javascript
javascript使用btoa和atob来进行Base64转码和解码
2017/03/20 Javascript
Angular实现下拉框模糊查询功能示例
2018/01/03 Javascript
JS实现的文字间歇循环滚动效果完整示例
2018/02/13 Javascript
详解vue-cli中使用rem,vue自适应
2019/05/06 Javascript
Vue使用虚拟dom进行渲染view的方法
2019/12/26 Javascript
Vue 同步异步存值取值实现案例
2020/08/05 Javascript
vue-cli 关闭热更新操作
2020/09/18 Javascript
JavaScript实现原型封装轮播图
2020/12/27 Javascript
[46:53]Secret vs Liquid 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python实现机器学习之元线性回归
2018/09/06 Python
Python 单例设计模式用法实例分析
2019/09/23 Python
SELENIUM自动化模拟键盘快捷键操作实现解析
2019/10/28 Python
浅谈python 中的 type(), dtype(), astype()的区别
2020/04/09 Python
python实现粒子群算法
2020/10/15 Python
加拿大的标志性百货公司:Hudson’s Bay(哈得逊湾)
2019/09/03 全球购物
Tomcat Mysql datasource数据源配置
2015/12/28 面试题
党员教师一句话承诺
2014/05/30 职场文书
教师暑期培训感言
2014/08/15 职场文书
货款欠条范本
2015/07/03 职场文书
2016大一新生军训心得体会
2016/01/11 职场文书
MySQL 原理与优化之Limit 查询优化
2022/08/14 MySQL