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中函数默认值使用注意点详解
Jun 01 Python
Python实现信用卡系统(支持购物、转账、存取钱)
Jun 24 Python
python中文分词,使用结巴分词对python进行分词(实例讲解)
Nov 14 Python
Python简单计算数组元素平均值的方法示例
Dec 26 Python
Python中asyncio与aiohttp入门教程
Oct 16 Python
Python datetime和unix时间戳之间相互转换的讲解
Apr 01 Python
Python面向对象之继承和多态用法分析
Jun 08 Python
利用Python实现手机短信监控通知的方法
Jul 22 Python
Python with标签使用方法解析
Jan 17 Python
Python 之 Json序列化嵌套类方式
Feb 27 Python
详解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
Apr 25 Python
Pytorch可视化的几种实现方法
Jun 10 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
基于HTTP长连接的"服务器推"技术的php 简易聊天室
2009/10/31 PHP
PHP中防止直接访问或查看或下载config.php文件的方法
2012/07/07 PHP
PHP中trim()函数简单使用指南
2015/04/16 PHP
PHP二维数组矩形转置实例
2016/07/20 PHP
基于laravel Request的所有方法详解
2019/09/29 PHP
FF IE兼容性的修改小结
2009/09/02 Javascript
关于jquery的多个选择器的使用示例
2013/10/18 Javascript
JQuery页面的表格数据的增加与分页的实现
2013/12/10 Javascript
js插件设置innerHTML时在IE8下提示“未知运行时错误”解决方法
2015/04/25 Javascript
JavaScript中用getDate()方法返回指定日期的教程
2015/06/09 Javascript
js中对函数设置默认参数值的3种方法
2015/10/23 Javascript
window.setInterval()方法的定义和用法及offsetLeft与style.left的区别
2015/11/11 Javascript
所见即所得的富文本编辑器bootstrap-wysiwyg使用方法详解
2016/05/27 Javascript
关于网页中的无缝滚动的js代码
2016/06/09 Javascript
Vue 多层组件嵌套二种实现方式(测试实例)
2017/09/08 Javascript
JavaScript 异步调用
2017/10/25 Javascript
Vue前后端不同端口的实现方法
2018/09/19 Javascript
小程序websocket心跳库(websocket-heartbeat-miniprogram)
2020/02/23 Javascript
Vue数据双向绑定原理实例解析
2020/05/15 Javascript
python机器学习之神经网络(二)
2017/12/20 Python
Python科学计算包numpy用法实例详解
2018/02/08 Python
python pandas 如何替换某列的一个值
2018/06/09 Python
使用Python正则表达式操作文本数据的方法
2019/05/14 Python
Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容实例详解
2020/02/18 Python
python绘制动态曲线教程
2020/02/24 Python
将 Ubuntu 16 和 18 上的 python 升级到最新 python3.8 的方法教程
2020/03/11 Python
PyCharm上安装Package的实现(以pandas为例)
2020/09/18 Python
美国NBA官方商店:NBA Store
2019/04/12 全球购物
印尼在线旅游门户网站:NusaTrip
2019/11/01 全球购物
NULL是什么,它是怎么定义的
2015/05/09 面试题
初三化学教学反思
2014/01/23 职场文书
《一本男孩子必读的书》教学反思
2014/02/19 职场文书
拾金不昧感谢信
2015/01/21 职场文书
2019年世界儿童日宣传标语
2019/11/22 职场文书
梳理总结Python开发中需要摒弃的18个坏习惯
2022/01/22 Python
Python如何加载模型并查看网络
2022/07/15 Python