django实现日志按日期分割


Posted in Python onMay 21, 2020

settings文件中配置:

LOGGING = {
  'version':1,
  'disable_existing_logger':False,
  'formatters':{
    'verbose':{
      'format':'%(asctime)s \"%(pathname)s:%(module)s:%(funcName)s:%(lineno)d\" [%(levelname)s]-%(message)s'
    },
  },
  # 处理器
  'handlers':{
    # 输出控制台
    'console':{
      'level':'INFO',
      'class':'logging.StreamHandler',
      'formatter':'verbose'
    },
    # 输出文件
    'file':{
      'level':'DEBUG',
      'class':'logging.handlers.TimedRotatingFileHandler',
      'filename':'logs/blog.log',
      'formatter':'verbose',
      # 每分钟切割一次日志
      'when':'M',
      # 时间间隔
      'interval':1,
      # 保留5份日志
      'backupCount':5,
      'encoding':'utf-8'
    },
  },
  # 记录器
  'loggers':{
    'django':{
      'handlers':['console','file'],
      'level':'INFO',
      'propagete':True,
    },
  }
}

项目启动时,win系统下,添加 --noreload :python manage.py runserver --noreload ,防止PermissionError报错;

pycharm使用时,在此添加参数

django实现日志按日期分割

补充知识:logback输出日志:时间分割(每天生成相同名称的log文件,旧文件以时间分类)

private final static Logger logger = LoggerFactory.getLogger(SyncIntegralService.class);

今天经理又提出了一个奇怪的需求,很是蛋疼,就是:每天生成相同名称的log文件,旧文件以时间分类

只有一个"log.log"的文件,7日(今天)生成的日志是以 “log.log”的形式存储的,当到8日(明天)的时候是把7日生成的log.log文件保存到log.log201400707.log,然后在创建一个8日的log.log文件,依次类推。

现在很清晰是什么需求了吧,先贴项目之前的logback文件

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
 <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
 <encoder>
  <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
  </pattern>
 </encoder>
 </appender>
 
 <appender name="eventFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  <fileNamePattern>${catalina.base}/logs/EventAnalysis/EventAnalysis.%d{yyyy-MM-dd}.log</fileNamePattern>
  <maxHistory>30</maxHistory>
 </rollingPolicy>
 <encoder>
  <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
 </encoder>
 </appender>
 
 <logger name="com.travelsky.eventanalysis.dao" additivity="true">
 <level value="DEBUG" />
 </logger>
 
 <root level="info">
 <appender-ref ref="eventFile" />
 <appender-ref ref="STDOUT"/>
 </root> 
</configuration>

仔细看看还是很简单的,就是每天生成文件以时间分类,输出级别是debug,还有输出形式等。。具体是这样的

django实现日志按日期分割

好了,现在贴上需求大代码

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
 <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
 <encoder>
  <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
  </pattern>
 </encoder>
 </appender>
 
 <!-- 日志生成位置 -->
 
 <appender name="eventFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
  <File>${catalina.base}/logs/BigeyeCenter/BigeyeCenter.log</File>
  <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
   <!-- daily rollover 保存历史记录到这个文件夹一日起为后缀 -->
   <FileNamePattern>${catalina.base}/logs/BigeyeCenter/BigeyeCenter.%d{yyyy-MM-dd}.log</FileNamePattern>
   <!-- keep 30 days' worth of history -->
   <maxHistory>30</maxHistory>
  </rollingPolicy>
  <encoder>
   <Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg %n</Pattern>
   <charset>UTF-8</charset> <!-- 此处设置字符集 -->
  </encoder>
 </appender>
 
 <logger name="com.travelsky.updateDatabase.dao" additivity="true">
 <level value="DEBUG" />
 </logger>
 
 <!-- 打印 日志级别-->
 <root level="info">
 <appender-ref ref="eventFile" />
 <appender-ref ref="STDOUT"/>
 </root> 
</configuration>

呵呵,其实就是加上了一行代码,这就浪费了一天的时间。。。,其实刚开始想写一个文件的覆盖,用java代码控制。后来才发现资源一直被占用,因为tomcat一直在占用相同的log文件,这里就不贴码了

看一下效果

django实现日志按日期分割

看一下修改日期和生成日期你就看懂了。。。

希望能给小伙伴们帮助,别学我~

以上这篇django实现日志按日期分割就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中AND、OR的一个使用小技巧
Feb 18 Python
json跨域调用python的方法详解
Jan 11 Python
Python的地形三维可视化Matplotlib和gdal使用实例
Dec 09 Python
解读python如何实现决策树算法
Oct 11 Python
python3.6.3转化为win-exe文件发布的方法
Oct 31 Python
Python判断一个文件夹内哪些文件是图片的实例
Dec 07 Python
python从子线程中获得返回值的方法
Jan 30 Python
twilio python自动拨打电话,播放自定义mp3音频的方法
Aug 08 Python
jupyter lab的目录调整及设置默认浏览器为chrome的方法
Apr 10 Python
使用Python防止SQL注入攻击的实现示例
May 21 Python
详解Pycharm与anaconda安装配置指南
Aug 25 Python
详解Python+OpenCV进行基础的图像操作
Feb 15 Python
Django之富文本(获取内容,设置内容方式)
May 21 #Python
使用Python防止SQL注入攻击的实现示例
May 21 #Python
Django的ListView超详细用法(含分页paginate)
May 21 #Python
Django中FilePathField字段的用法
May 21 #Python
Django 解决上传文件时,request.FILES为空的问题
May 20 #Python
使用 django orm 写 exists 条件过滤实例
May 20 #Python
django 解决自定义序列化返回处理数据为null的问题
May 20 #Python
You might like
深入理解PHP之数组(遍历顺序)  Laruence原创
2012/06/13 PHP
学习php开源项目的源码指南
2014/12/21 PHP
php通过排列组合实现1到9数字相加都等于20的方法
2015/08/03 PHP
PHP 500报错的快速解决方法
2016/12/14 PHP
PHP数组操作实例分析【添加,删除,计算,反转,排序,查找等】
2016/12/24 PHP
在phpstudy集成环境下的nginx服务器下配置url重写
2019/12/02 PHP
Yii 实现数据加密和解密
2021/03/09 PHP
JQuery实现的在新窗口打开链接的方法小结
2010/04/22 Javascript
对于Form表单reset方法的新认识
2014/03/05 Javascript
什么是cookie?js手动创建和存储cookie
2014/05/27 Javascript
js中将String转换为number以便比较
2014/07/08 Javascript
基于JavaScript实现瀑布流布局(二)
2016/01/26 Javascript
详解Js模板引擎(TrimPath)
2016/11/22 Javascript
微信小程序--组件(swiper)详细介绍
2017/06/13 Javascript
vue基础之使用get、post、jsonp实现交互功能示例
2019/03/12 Javascript
Layui选项卡制作历史浏览记录的方法
2019/09/28 Javascript
微信小程序上传图片并等比列压缩到指定大小的实例代码
2019/10/24 Javascript
js的Object.assign用法示例分析
2020/03/05 Javascript
mpvue网易云短信接口实现小程序短信登录的示例代码
2020/04/03 Javascript
教你使用python实现微信每天给女朋友说晚安
2018/03/23 Python
python利用smtplib实现QQ邮箱发送邮件
2020/05/20 Python
对Python 内建函数和保留字详解
2018/10/15 Python
Python命令行click参数用法解析
2019/12/19 Python
pandas factorize实现将字符串特征转化为数字特征
2019/12/19 Python
python实现超级玛丽游戏
2020/03/18 Python
Python项目跨域问题解决方案
2020/06/22 Python
简约控的天堂:The Undone
2016/12/21 全球购物
马来西亚太阳镜、眼镜和隐形眼镜网上商店:Focus Point
2018/12/13 全球购物
初中高效课堂实施方案
2014/02/26 职场文书
基督教婚礼主持词
2014/03/14 职场文书
2014年秋季新学期寄语
2014/08/02 职场文书
党委班子纠正“四风”问题整改措施
2014/10/28 职场文书
房屋财产继承协议书范本
2014/11/03 职场文书
幼儿园万圣节活动总结
2015/05/05 职场文书
企业转让协议书(范文2篇)
2019/08/15 职场文书
python字典进行运算原理及实例分享
2021/08/02 Python