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简单实现TCP包发送十六进制数据的方法
Apr 16 Python
django将图片上传数据库后在前端显式的方法
May 25 Python
python实现俄罗斯方块
Jun 26 Python
Python3中在Anaconda环境下安装basemap包
Oct 21 Python
Python处理session的方法整理
Aug 29 Python
Python如何使用Gitlab API实现批量的合并分支
Nov 27 Python
在tensorflow中设置使用某一块GPU、多GPU、CPU的操作
Feb 07 Python
解决django接口无法通过ip进行访问的问题
Mar 27 Python
Django中F函数的使用示例代码详解
Jul 06 Python
python装饰器实现对异常代码出现进行自动监控的实现方法
Sep 15 Python
FP-growth算法发现频繁项集——发现频繁项集
Jun 24 Python
Python+SeaTable实现计算两个日期间的工作日天数
Jul 07 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/10 PHP
php给数组赋值的实例方法
2019/09/26 PHP
javascript中的delete使用详解
2013/04/11 Javascript
jquery中交替点击事件的实现代码
2014/02/14 Javascript
简单选项卡 js和jquery制作方法分享
2014/02/26 Javascript
jqGrid读取选择的多行的某个属性代码
2014/05/18 Javascript
node.js中的querystring.unescape方法使用说明
2014/12/10 Javascript
Jquery中offset()和position()的区别分析
2015/02/05 Javascript
jquery实现焦点图片随机切换效果的方法
2015/03/12 Javascript
javascript中CheckBox全选终极方案
2015/05/20 Javascript
javascript伸缩型菜单实现代码
2015/11/16 Javascript
javascript中Date对象的使用总结
2016/11/21 Javascript
微信小程序 template模板详解及实例
2017/02/21 Javascript
值得分享和收藏的xmlplus组件学习教程
2017/05/05 Javascript
JS实现简单的浮动碰撞效果示例
2017/12/28 Javascript
vue树形结构获取键值的方法示例
2018/06/21 Javascript
JavaScript使用类似break机制中断forEach循环的方法
2018/11/13 Javascript
JS可断点续传文件上传实现代码解析
2020/07/30 Javascript
Python迭代器和生成器介绍
2015/03/06 Python
Python3 循环语句(for、while、break、range等)
2017/11/20 Python
对python多线程与global变量详解
2018/11/09 Python
Python lambda表达式用法实例分析
2018/12/25 Python
Python3中的最大整数和最大浮点数实例
2019/07/09 Python
Python八皇后问题解答过程详解
2019/07/29 Python
python tkinter实现屏保程序
2019/07/30 Python
用Python写一个自动木马程序
2019/09/17 Python
Python求两个字符串最长公共子序列代码实例
2020/03/05 Python
Python多线程:主线程等待所有子线程结束代码
2020/04/25 Python
浅谈Python3多线程之间的执行顺序问题
2020/05/02 Python
python实现邮件循环自动发件功能
2020/09/11 Python
selenium判断元素是否存在的两种方法小结
2020/12/07 Python
物流管理专业应届生求职信
2013/11/21 职场文书
简历上的自我评价怎么写
2014/01/28 职场文书
入党自我评价范文
2014/02/02 职场文书
作文评语大全
2014/04/23 职场文书
Python控制台输出俄罗斯方块的方法实例
2021/04/17 Python