uwsgi日志分割

uwsgi日志分割(踩坑实录)

今天给uwsgi项目配置日志分割,结果怎么都不生效,各种百度都无法解决,最后发现多次执行 uwsgi --ini uwsgi.ini是不会报错的,但是会导致原来的uwsgi进程无法写入日志文件,但新的进程又没成功启动,这样日志文件就没有信息了。
只要先把原uwsgi进程kill或者执行 uwsgi --stop uwsgi.pid, 我傻到执行错命令,执行成 uwsgi --stop uwsgi.ini,真是晕了,下面记录一下配置信息。今天由于这个问题弄了好久!!

1、配置如下

[uwsgi]
#  这里的选项是socket / http   使用nginx再上socket, 不然就使用 http
socket = :5000    
chdir = ./AudioBottle_Service/  
wsgi-file = user_management.py
callable = app      	
processes = 4   
threads = 2     	 
stats = 127.0.0.1:9191     
pidfile = uwsgi.pid        
lazy-apps = true             
master-fifo = ./mfifo  
touch-chain-reload = true
# master = true
# 指定监听文件,修改后重新打开日志
touch-logreopen = /home/sstest/project/touchforlogrotate
#日志路径
daemonize = /home/sstest/project/uwsgi.daemonize.log

2、定时脚本

#!/bin/bash

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

echo ${DIR} >> tmp.txt
echo ${LOGDIR} >> tmp.txt

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

echo ${sourcelogpath} >> tmp.txt
echo ${touchfile} >> tmp.txt

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

echo ${DATE} >> tmp.txt
echo ${destlogpath} >> tmp.txt

mv $sourcelogpath $destlogpath
touch ${touchfile}

3、设置定时任务

crondtab -e

# 在里面写入一行

0 0 * * * sh 上面的定时脚本路径

# 执行命令开启定时任务

systemctl start crond

# 设置开机自启动

systemctl enable crond

# 重启crond

systemctl restart crond

4、小tip

可以把定时任务写的小一点比如 * * * * * sh 脚本路径,先测试是否能够实现日志分割的功能,再改回来!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
UWSGI (Ultra Fast Web Server Gateway Interface) 是一个高性能的 Web 和应用程序服务器接口,常用于与像 Django、Flask 或 Pyramid 这样的 Web 框架一起使用,提供高性能的 WSGI 应用程序服务器解决方案。它可以作为一个独立的服务运行,也可以作为其他 Web 服务器(如 Nginx)的后端。 `uwsgi.ini` 是 UWSGI 的配置文件,它详细定义了应用程序的运行参数和设置,比如连接数、工作线程、内存限制、日志设置、网络选项、热重启策略等。配置文件通常包含以下几个部分: 1. **Server Settings**:基本信息,如服务器地址、端口、socket类型。 ```ini [uwsgi] socket = 127.0.0.1:8000 ``` 2. **Application Configuration**:指定应用模块及其相关的模块路径。 ```ini app = example:app # 或者 uwsgi_app:application callable = app # 如果是函数而不是类 ``` 3. **Process Management**:如何管理和启动工作进程、主进程数量等。 ```ini processes = 4 # 并行工作进程的数量 workers = 2 * $cpu # 根据CPU核心数动态调整 ``` 4. **Logging and Monitoring**:设置日志级别、输出位置以及错误处理。 ```ini logto = /var/log/uwsgi/app.log log-exceptions = true ``` 5. **Advanced Options**:包括缓存、内存限制、信号处理、热重启策略等。 ```ini harakiri = 60s # 连接超时时间 master = true # 使用master模式,主进程管理其他工作进程 reload-mercy = 10s # 主进程重启期间的宽容时间 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值