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之简单主机批量管理工具
Jan 27 Python
python中nan与inf转为特定数字方法示例
May 11 Python
Python Selenium Cookie 绕过验证码实现登录示例代码
Apr 10 Python
基于python神经卷积网络的人脸识别
May 24 Python
详解Python进阶之切片的误区与高级用法
Dec 24 Python
详解django中url路由配置及渲染方式
Feb 25 Python
Python高级特性与几种函数的讲解
Mar 08 Python
python获取地震信息 微信实时推送
Jun 18 Python
用Python画一个LinkinPark的logo代码实例
Sep 10 Python
Python使用shutil模块实现文件拷贝
Jul 31 Python
Python多分支if语句的使用
Sep 03 Python
Pytorch中的学习率衰减及其用法详解
Jun 05 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 Stream_*系列函数
2010/08/01 PHP
一个漂亮的php验证码类(分享)
2013/08/06 PHP
php绘制一条直线的方法
2015/01/24 PHP
PHP中你应该知道的require()文件包含的正确用法
2015/06/12 PHP
PHP实用小技巧之调用录像的方法
2019/12/05 PHP
Javascript 不能释放内存.
2006/09/07 Javascript
Javascript remove 自定义数组删除方法
2009/10/20 Javascript
javascript学习笔记(八)正则表达式
2014/10/08 Javascript
整理Javascript事件响应学习笔记
2015/12/02 Javascript
微信小程序(六):列表上拉加载下拉刷新示例
2017/01/13 Javascript
Node.js查找当前目录下文件夹实例代码
2017/03/07 Javascript
原生JS实现层叠轮播图
2017/05/17 Javascript
vuex的简单使用教程
2018/02/02 Javascript
vue页面切换过渡transition效果
2018/10/08 Javascript
js实现倒计时器自定义时间和暂停
2019/02/25 Javascript
Vue入门学习笔记【基本概念、对象、过滤器、指令等】
2019/04/13 Javascript
[02:32]DOTA2英雄基础教程 美杜莎
2014/01/07 DOTA
Python的Bottle框架中获取制定cookie的教程
2015/04/24 Python
Python中自定义函数的教程
2015/04/27 Python
Python psutil模块简单使用实例
2015/04/28 Python
Python找出文件中使用率最高的汉字实例详解
2015/06/03 Python
Python 中的Selenium异常处理实例代码
2018/05/03 Python
python 计算平均平方误差(MSE)的实例
2019/06/29 Python
From CSV to SQLite3 by python 导入csv到sqlite实例
2020/02/14 Python
查看keras各种网络结构各层的名字方式
2020/06/11 Python
英国当代时尚和街头服饰店:18montrose
2018/12/15 全球购物
老师推荐信
2013/10/28 职场文书
股份转让协议书
2014/04/12 职场文书
男性健康日的活动方案
2014/08/18 职场文书
党的群众路线教育实践活动个人整改方案
2014/10/25 职场文书
2014小学一年级班主任工作总结
2014/12/05 职场文书
2016自主招生教师推荐信范文
2015/03/23 职场文书
初中数学教学反思范文
2016/02/17 职场文书
2016年119消防宣传日活动总结
2016/04/05 职场文书
Python 中的单分派泛函数你真的了解吗
2021/06/22 Python
Python自动化实战之接口请求的实现
2022/05/30 Python