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实现根据用户输入从电影网站获取影片信息的方法
Apr 07 Python
Python实现SVN的目录周期性备份实例
Jul 17 Python
Python MD5加密实例详解
Aug 02 Python
Python实现将Excel转换为json的方法示例
Aug 05 Python
python 使用正则表达式按照多个空格分割字符的实例
Dec 20 Python
python实现桌面壁纸切换功能
Jan 21 Python
20行python代码的入门级小游戏的详解
May 05 Python
windows系统中Python多版本与jupyter notebook使用虚拟环境的过程
May 15 Python
python pillow模块使用方法详解
Aug 30 Python
Python编程快速上手——strip()函数的正则表达式实现方法分析
Feb 29 Python
python3 xpath和requests应用详解
Mar 06 Python
python实现简单的井字棋游戏(gui界面)
Jan 22 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
基础的WordPress插件制作教程
2015/11/24 PHP
PHP实现一个简单url路由功能实例
2016/11/05 PHP
PHP搭建大文件切割分块上传功能示例
2017/01/04 PHP
utf8的编码算法 转载
2006/12/27 Javascript
判断目标是否是window,document,和拥有tagName的Element的代码
2010/05/31 Javascript
JQuery解析HTML、JSON和XML实例详解
2014/03/29 Javascript
jQuery应用之jQuery链用法实例
2015/01/19 Javascript
javascript实现网页中涉及的简易运动(改变宽高、透明度、位置)
2015/11/29 Javascript
Web前端开发之水印、图片验证码
2016/11/27 Javascript
简单实现js无缝滚动效果
2017/02/05 Javascript
EasyUI Datebox 日期验证之开始日期小于结束时间
2017/05/19 Javascript
详解webpack的配置文件entry与output
2017/08/21 Javascript
在Vue中使用highCharts绘制3d饼图的方法
2018/02/08 Javascript
详解element上传组件before-remove钩子问题解决
2020/04/08 Javascript
vue路由结构可设一层方便动态添加路由操作
2020/08/31 Javascript
[06:59]DOTA2-DPC中国联赛3月7日Recap集锦
2021/03/11 DOTA
关于Python面向对象编程的知识点总结
2017/02/14 Python
对python for 文件指定行读写操作详解
2018/12/29 Python
python ddt数据驱动最简实例代码
2019/02/22 Python
Python安装selenium包详细过程
2019/07/23 Python
详解python路径拼接os.path.join()函数的用法
2019/10/09 Python
python KNN算法实现鸢尾花数据集分类
2019/10/24 Python
pycharm激活码有效到2020年11月底
2020/09/18 Python
解决Tensorflow 使用时cpu编译不支持警告的问题
2020/02/03 Python
Django CSRF认证的几种解决方案
2020/03/03 Python
python如何调用java类
2020/07/05 Python
Python 防止死锁的方法
2020/07/29 Python
CSS3解析抖音LOGO制作的方法步骤
2019/04/11 HTML / CSS
魔声耳机官方网站:Monster是世界第一品牌的高性能耳机
2016/10/26 全球购物
如何利用find命令查找文件
2015/02/07 面试题
毕业生欢送会主持词
2014/03/31 职场文书
采购意向书范本
2014/03/31 职场文书
质量提升方案
2014/06/16 职场文书
临床医学专业求职信
2014/08/08 职场文书
小学生优秀作文范文(六篇)
2019/07/10 职场文书
如何利用python创作字符画
2022/06/25 Python