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 相关文章推荐
Django日志模块logging的配置详解
Feb 14 Python
Windows下Anaconda的安装和简单使用方法
Jan 04 Python
Django中STATIC_ROOT和STATIC_URL及STATICFILES_DIRS浅析
May 08 Python
Python编写带选项的命令行程序方法
Aug 13 Python
python+rsync精确同步指定格式文件
Aug 29 Python
flask框架蓝图和子域名配置详解
Jan 25 Python
keras实现VGG16方式(预测一张图片)
Jul 07 Python
python计算auc的方法
Sep 09 Python
Pyecharts 中Geo函数常用参数的用法说明
Feb 01 Python
python反扒机制的5种解决方法
Feb 06 Python
Python爬虫入门案例之回车桌面壁纸网美女图片采集
Oct 16 Python
Python+Tkinter制作专属图形化界面
Apr 01 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和ACCESS写聊天室(一)
2006/10/09 PHP
PHP防注入安全代码
2008/04/09 PHP
PHP将session信息存储到数据库的类实例
2015/03/04 PHP
php判断是否为ajax请求的方法
2016/11/29 PHP
PHP面向对象之工作单元(实例讲解)
2017/06/26 PHP
Laravel学习教程之request validation的编写
2017/10/25 PHP
php中输出json对象的值(实现方法)
2018/03/07 PHP
JavaScript利用正则表达式去除日期中的-
2014/06/09 Javascript
java、javascript实现附件下载示例
2014/08/14 Javascript
理解javascript正则表达式
2016/03/08 Javascript
TypeScript学习之强制类型的转换
2016/12/27 Javascript
bootstrap日期插件daterangepicker使用详解
2017/10/19 Javascript
vue+iview/elementUi实现城市多选
2019/03/28 Javascript
js实现图片推拉门效果代码实例
2019/05/18 Javascript
javascript实现倒计时效果
2020/02/17 Javascript
Node使用Nodemailer发送邮件的方法实现
2020/02/24 Javascript
[43:47]完美世界DOTA2联赛PWL S3 LBZS vs Phoenix 第一场 12.09
2020/12/11 DOTA
关于你不想知道的所有Python3 unicode特性
2014/11/28 Python
python实现批量改文件名称的方法
2015/05/25 Python
python实现将汉字保存成文本的方法
2018/11/16 Python
详解Python正则表达式re模块
2019/03/19 Python
11个Python Pandas小技巧让你的工作更高效(附代码实例)
2019/04/30 Python
解决python flask中config配置管理的问题
2019/07/26 Python
详解python中docx库的安装过程
2019/11/08 Python
利用Tensorboard绘制网络识别准确率和loss曲线实例
2020/02/15 Python
在主流系统之上安装Pygame的方法
2020/05/20 Python
几款好用的python工具库(小结)
2020/10/20 Python
The North Face北面德国官网:美国著名户外品牌
2018/12/12 全球购物
关心下一代工作先进事迹
2014/08/15 职场文书
简易版租房协议书范本
2014/10/13 职场文书
2015年十一国庆节演讲稿
2015/03/20 职场文书
如何用JavaScipt测网速
2021/05/09 Javascript
Pytorch 中net.train 和 net.eval的使用说明
2021/05/22 Python
python中Matplotlib绘制直线的实例代码
2021/07/04 Python
Node与Python 双向通信的实现代码
2021/07/16 Javascript
VUE使用draggable实现组件拖拽
2022/04/06 Vue.js