美文网首页Django
uwsgi日志按天切割

uwsgi日志按天切割

作者: 十三流 | 来源:发表于2016-12-08 10:15 被阅读0次

服务器出现问题后,需要从uwsgi的日志文件分析原因,但是uwsgi没有提供按天的日志切割配置,只提供了一个log-maxsize配置,当文件达到多大的时候自动切分,对于查找历史日志还是很不方便。
这里可以用mv+touch-logreopen参数,移动日志文件后,让uwsgi重新打开日志记录,不过需要配合sh+crontab

1. 指定touch-logreope文件,

#uwsgi.ini文件中指定
[uwsgi]
master = true #以守护进程运行
touch-logreopen = %d./touchforlogrotat #指定监听文件,修改后重新打开日志
daemonize = %d./uwsgi.daemonize.log #日志路径

这里我们指定日志文件就在项目目录下叫uwsgi.daemonize.log,监听项目目录下的touchforlogrotat文件,如果文件发生变化,就重新打开日志,我们可以先将当前的uwsgi.daemonize.log文件移动到别的地发,再touch一下touchforlogrotat,之前的文件便停止写入,重新生成了一个叫uwsgi.daemonize.log文件。

2. 自动脚本

在当前项目下新建一个touchforlogrotate.sh,并新建日志文件备份的日志,这里就放在项目中的logs文件夹

#!/bin/bash

DIR=`echo $(cd "$(dirname "$0")"; pwd)`
LOGDIR="${DIR}/logs"

sourcelogpath="${DIR}/uwsgi.daemonize.log"
touchfile="${DIR}/touchforlogrotate"


DATE=`date -d "yesterday" +"%Y%m%d"`
destlogpath="${LOGDIR}/uwsgi.daemonize.${DATE}.log"

mv $sourcelogpath $destlogpath
touch $touchfile

3. crontab定时调用

0 0 * * * sh /projectpath/touchforlogrotate.sh

好了,重启uwsgi,每天los文件夹下便会有每天的日志了。

相关文章

  • uwsgi日志按天切割

    服务器出现问题后,需要从uwsgi的日志文件分析原因,但是uwsgi没有提供按天的日志切割配置,只提供了一个log...

  • 【Python】uwsgi日志切割

    crontab设置定时任务 uwsgi.ini配置 touchforlogrotate.sh配置

  • nginx按天切割日志

    nginx 日志默认都放在同一个文件中如何按照天来统计每天的日志,对,可以使用定时任务切割日志文件 cut.sh ...

  • Nginx日志按天切割

    一、实现需求 每天凌晨00:00把前一天的Nginx日志access.log重命名为access-xxxx-xx-...

  • nginx日志文件切割

    使用脚本对nginx日志文件进行按天切割 然后配置crontab进行每天切割使用 使用logrotate对ngin...

  • Nginx日志切割的方法

    Nginx日志切割的方法 nginx泡得太久,日志就越来越大,有必要对其切割下,也便于按天统计访问量神马的。 这是...

  • nginx日志自动按天切割

    来源 同事 nginx的access.log,error.log自动按天切割 nginx 1.16版本开始自带了日...

  • 坑爹的日志无法按天切割问题!

    问题背景 线上某个新管理型系统出现了日志无法按天切割生成日志文件的问题,所有的日志都在一个日志文件里面,只有每次重...

  • linux 按天压缩并切割日志

    1、linux 自带的 logrotate 命令2、定义切割文件相关信息 那个目录下的什么文件,例如把/var/l...

  • 按日期切割Nginx日志

    需求 每天凌晨00:00把前一天的Nginx日志access.log重命名为access-xxxx-xx-xx.l...

网友评论

    本文标题:uwsgi日志按天切割

    本文链接:https://www.haomeiwen.com/subject/jsxgpttx.html