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中将字典转换成其json字符串
Jul 16 Python
python的Template使用指南
Sep 11 Python
python类装饰器用法实例
Jun 04 Python
Python利用multiprocessing实现最简单的分布式作业调度系统实例
Nov 14 Python
django进阶之cookie和session的使用示例
Aug 17 Python
Pycharm之快速定位到某行快捷键的方法
Jan 20 Python
Python逐行读取文件中内容的简单方法
Feb 26 Python
Jacobi迭代算法的Python实现详解
Jun 29 Python
用OpenCV将视频分解成单帧图片,图片合成视频示例
Dec 10 Python
jupyter notebook参数化运行python方式
Apr 10 Python
python在CMD界面读取excel所有数据的示例
Sep 28 Python
python实现层次聚类的方法
Nov 01 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
解决GD中文乱码问题
2007/02/14 PHP
PHP $_SERVER详解
2009/01/16 PHP
PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
2011/08/03 PHP
php5.4以下版本json不支持不转义内容中文的解决方法
2015/01/13 PHP
php超快高效率统计大文件行数
2015/07/05 PHP
js继承的实现代码
2010/08/05 Javascript
jQuery为iframe的body添加click事件的实现代码
2011/04/07 Javascript
JS鼠标事件大全 推荐收藏
2011/11/01 Javascript
关于jquery input textare 事件绑定及用法学习
2013/04/03 Javascript
jQuery地图map悬停显示省市代码分享
2015/08/20 Javascript
JavaScript数组去重的五种方法
2015/11/05 Javascript
JavaScript中ES6字符串扩展方法
2016/08/26 Javascript
Bootstrap table使用方法详细介绍
2016/12/09 Javascript
在JS中a标签加入单击事件屏蔽href跳转页面
2016/12/16 Javascript
Bootstarp基本模版学习教程
2017/02/01 Javascript
vue.js中过滤器的使用教程
2017/06/08 Javascript
react-native-fs实现文件下载、文本存储的示例代码
2017/09/22 Javascript
Vue中的字符串模板的使用
2018/05/17 Javascript
webpack4.x下babel的安装、配置及使用详解
2019/03/07 Javascript
JS实现马赛克图片效果完整示例
2019/04/13 Javascript
javascript使用substring实现的展开与收缩文字功能示例
2019/06/17 Javascript
JQuery使用数组遍历跳出each循环
2020/09/01 jQuery
[01:14]2019完美世界城市挑战赛(秋季赛)全国总决赛精彩花絮
2020/01/08 DOTA
python查找目录下指定扩展名的文件实例
2015/04/01 Python
python3+PyQt5重新实现自定义数据拖放处理
2018/04/19 Python
python之pyqt5通过按钮改变Label的背景颜色方法
2019/06/13 Python
Django使用消息提示简单的弹出个对话框实例
2019/11/15 Python
Python利用Faiss库实现ANN近邻搜索的方法详解
2020/08/03 Python
CSS3制作文字半透明倒影效果的两种实现方式
2014/08/08 HTML / CSS
input file上传文件样式支持html5的浏览器解决方案
2012/11/14 HTML / CSS
日本必酷网络直营店:Biccamera
2019/03/23 全球购物
六一儿童节主持词
2014/03/21 职场文书
学校开学标语
2014/10/06 职场文书
开业庆典致辞
2015/08/01 职场文书
《西游记》读后感(3篇)
2019/09/20 职场文书
python基于scrapy爬取京东笔记本电脑数据并进行简单处理和分析
2021/04/14 Python