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查找相似单词的方法
Mar 05 Python
python实现连接mongodb的方法
May 08 Python
Python函数式编程
Jul 20 Python
python使用pandas实现数据分割实例代码
Jan 25 Python
解决python测试opencv时imread导致的错误问题
Jan 26 Python
浅谈pandas筛选出表中满足另一个表所有条件的数据方法
Feb 08 Python
flask框架单元测试原理与用法实例分析
Jul 23 Python
python中通过selenium简单操作及元素定位知识点总结
Sep 10 Python
keras 获取某层输出 获取复用层的多次输出实例
May 23 Python
Python如何实现自带HTTP文件传输服务
Jul 08 Python
在 Python 中使用 7zip 备份文件的操作
Dec 11 Python
用Python生成会跳舞的美女
Jan 18 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原创论坛
2006/10/09 PHP
php中的Base62类(适用于数值转字符串)
2013/08/12 PHP
php内核解析:PHP中的哈希表
2014/01/30 PHP
使用ThinkPHP+Uploadify实现图片上传功能
2014/06/26 PHP
PHP实现的带超时功能get_headers函数
2015/02/10 PHP
PHP SESSION跨页面传递失败解决方案
2020/12/11 PHP
JQuery自定义事件的应用 JQuery最佳实践
2010/08/01 Javascript
判断js中各种数据的类型方法之typeof与0bject.prototype.toString讲解
2013/11/07 Javascript
js获得当前时区夏令时发生和终止的时间代码
2014/02/23 Javascript
JavaScript Array对象扩展indexOf()方法
2014/05/09 Javascript
Javascript检查图片大小不要让大图片撑破页面
2014/11/04 Javascript
javascript消除window.close()的提示窗口
2015/05/20 Javascript
JavaScript实现网页加载进度条代码超简单
2015/09/21 Javascript
Javascript数组Array方法解读
2016/03/13 Javascript
Nodejs高扩展性的模板引擎 functmpl简介
2017/02/13 NodeJs
微信小程序App生命周期详解
2018/01/31 Javascript
简单的三步vuex入门
2018/05/20 Javascript
微信小程序实现九宫格抽奖
2020/04/15 Javascript
Vue页面切换和a链接的本质区别详解
2019/11/12 Javascript
javascript实现贪吃蛇游戏(娱乐版)
2020/08/17 Javascript
JS JQuery获取data-*属性值方法解析
2020/09/01 jQuery
[08:42]DOTA2每周TOP10 精彩击杀集锦vol.2
2014/06/25 DOTA
[54:29]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第二场
2018/04/09 DOTA
Python异常的检测和处理方法
2018/10/26 Python
python2.7使用plotly绘制本地散点图和折线图
2019/04/02 Python
利用anaconda保证64位和32位的python共存
2021/03/09 Python
对于Python深浅拷贝的理解
2019/07/29 Python
python代码中怎么换行
2020/06/17 Python
世界上最大的专业美容用品零售商:Sally Beauty
2017/07/02 全球购物
联想加拿大官方网站:Lenovo Canada
2018/04/05 全球购物
群众路线个人剖析材料及整改措施
2014/11/04 职场文书
论群众路线学习笔记
2014/11/06 职场文书
作息时间调整通知
2015/04/22 职场文书
中学综治宣传月活动总结
2015/05/07 职场文书
怎样写好工作计划
2019/04/10 职场文书
《没有任何借口》读后感:完美的执行能力
2020/01/07 职场文书