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 13 Python
python 异或加密字符串的实例
Oct 14 Python
Python学习笔记之图片人脸检测识别实例教程
Mar 06 Python
python tkinter canvas 显示图片的示例
Jun 13 Python
Pycharm+django2.2+python3.6+MySQL实现简单的考试报名系统
Sep 05 Python
面向对象学习之pygame坦克大战
Sep 11 Python
利用PyCharm操作Github(仓库新建、更新,代码回滚)
Dec 18 Python
python 输出列表元素实例(以空格/逗号为分隔符)
Dec 25 Python
使用pickle存储数据dump 和 load实例讲解
Dec 30 Python
python 抓取知乎指定回答下视频的方法
Jul 09 Python
Python实现文本文件拆分写入到多个文本文件的方法
Apr 18 Python
python高温预警数据获取实例
Jul 23 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 从数据库提取二进制图片的处理代码
2009/09/09 PHP
php使用gzip压缩传输js和css文件的方法
2015/07/29 PHP
js读取本地excel文档数据的代码
2010/11/11 Javascript
向左滚动文字 js代码效果
2013/08/17 Javascript
js获取checkbox复选框选中的选项实例
2014/08/24 Javascript
js比较日期大小的方法
2015/05/12 Javascript
jquery获取复选框checkbox的值的简单实现方法
2016/05/26 Javascript
浅析Jquery操作select
2016/12/13 Javascript
VUE使用vuex解决模块间传值问题的方法
2017/06/01 Javascript
JS查找数组中重复元素的方法详解
2017/06/14 Javascript
纯JS实现简单的日历
2017/06/26 Javascript
js 倒计时(高效率服务器时间同步)
2017/09/12 Javascript
Vue组件开发技巧总结
2018/03/04 Javascript
jQuery实现的简单对话框拖动功能示例
2018/06/05 jQuery
微信小程序自定义组件之可清除的input组件
2018/07/17 Javascript
laydate只显示时分 不显示秒的功能实现方法
2019/09/28 Javascript
Javascript中的this,bind和that使用实例
2019/12/05 Javascript
JS绘图Flot如何实现可选显示曲线图功能
2020/10/16 Javascript
如何使用原生Js实现随机点名详解
2021/01/06 Javascript
[05:00]TI9战队采访 - Royal Never Give Up
2019/08/20 DOTA
[06:57]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD 选手采访
2021/03/11 DOTA
python遍历文件夹并删除特定格式文件的示例
2014/03/05 Python
Python机器学习之SVM支持向量机
2017/12/27 Python
Python爬虫实例_城市公交网络站点数据的爬取方法
2018/01/10 Python
python自动截取需要区域,进行图像识别的方法
2018/05/17 Python
python3实现多线程聊天室
2018/12/12 Python
关于python多重赋值的小问题
2019/04/17 Python
python如何将两个txt文件内容合并
2019/10/18 Python
Python自定义sorted排序实现方法详解
2020/09/18 Python
python基于pexpect库自动获取日志信息
2021/02/01 Python
某公司Java工程师面试题笔试题
2016/03/27 面试题
个人自我评价和职业目标
2014/01/24 职场文书
离婚协议书格式
2014/11/21 职场文书
MySQL 重命名表的操作方法及注意事项
2021/05/21 MySQL
SQLServer之常用函数总结详解
2021/08/30 SQL Server
CSS font-variation 可变字体的魅力(实例详解)
2022/03/03 HTML / CSS