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基础教程之字典操作详解
Mar 25 Python
利用一个简单的例子窥探CPython内核的运行机制
Mar 30 Python
python timestamp和datetime之间转换详解
Dec 11 Python
对python中的argv和argc使用详解
Dec 15 Python
Pycharm 实现下一个文件引用另外一个文件的方法
Jan 17 Python
关于 Python opencv 使用中的 ValueError: too many values to unpack
Jun 28 Python
基于python的Paxos算法实现
Jul 03 Python
python Django编写接口并用Jmeter测试的方法
Jul 31 Python
tensorflow实现在函数中用tf.Print输出中间值
Jan 21 Python
基于Python中Remove函数的用法讨论
Dec 11 Python
pyspark对Mysql数据库进行读写的实现
Dec 30 Python
python中封包建立过程实例
Feb 18 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的zip解压缩类pclzip使用示例
2014/03/14 PHP
PHP中的print_r 与 var_dump 输出数组
2016/06/13 PHP
laravel学习教程之关联模型
2016/07/30 PHP
CI框架常用函数封装实例
2016/11/21 PHP
php实现留言板功能(代码详解)
2017/03/28 PHP
自制PHP框架之模型与数据库
2017/05/07 PHP
不间断滚动JS打包类,基本可以实现所有的滚动效果,太强了
2007/12/08 Javascript
JS控制图片翻转示例代码(兼容firefox,ie,chrome)
2013/12/19 Javascript
详谈Node.js之操作文件系统
2017/08/29 Javascript
javascript算法之二叉搜索树的示例代码
2017/09/12 Javascript
vue中遇到的坑之变化检测问题(数组相关)
2017/10/13 Javascript
Vue3 中的数据侦测的实现
2019/10/09 Javascript
js实现抽奖的两种方法
2020/03/19 Javascript
vue通过v-html指令渲染的富文本无法修改样式的解决方案
2020/05/20 Javascript
Python入门及进阶笔记 Python 内置函数小结
2014/08/09 Python
基于Python闭包及其作用域详解
2017/08/28 Python
对numpy Array [: ,] 的取值方法详解
2018/07/02 Python
通过Turtle库在Python中绘制一个鼠年福鼠
2020/02/03 Python
python不相等的两个字符串的 if 条件判断为True详解
2020/03/12 Python
Python3 io文本及原始流I/O工具用法详解
2020/03/23 Python
pymysql模块使用简介与示例
2020/11/17 Python
超酷炫 CSS3垂直手风琴菜单
2016/06/28 HTML / CSS
css3简单练习实现遨游浏览器logo的绘制
2013/01/30 HTML / CSS
CSS3田字格列表的样式编写方法
2018/11/22 HTML / CSS
工厂总经理岗位职责
2014/02/07 职场文书
中国好声音华少广告词
2014/03/17 职场文书
安全宣传标语口号
2014/06/06 职场文书
计算机求职信
2014/07/02 职场文书
个人授权委托书模板
2014/09/14 职场文书
个人工作表现评价材料
2014/09/21 职场文书
2014年流动人口工作总结
2014/11/26 职场文书
教师个人发展总结
2015/02/11 职场文书
2015年学校德育工作总结
2015/04/22 职场文书
门卫管理制度范本
2015/08/05 职场文书
以MySQL5.7为例了解一下执行计划
2022/04/13 MySQL
nginx之内存池的实现
2022/06/28 Servers