여기 로베르토의 답변에 따라 회전 할 구성입니다 로그. 최대 14 개의 로그 파일을 유지합니다. 매일 3:15에 회전합니다.
[uwsgi]
set-placeholder = log_dir=/var/log
set-placeholder = log_prefix=myservice-
set-placeholder = log_num=14
pidfile = /var/run/uwsgi-myservice.pid
logto = %(log_dir)/%(log_prefix)@(exec://date +%%Y-%%m-%%d).log
log-reopen = true
unique-cron = 15 3 -1 -1 -1 { sleep 66 && kill -HUP $(cat %(pidfile)) && ls -tp %(log_dir)/%(log_prefix)* | grep -v '/$' | tail -n +%(log_num) | xargs -d '\n' -r rm --; } &
다시로드 한 후 uwsgi는 현재 시간과 일치하므로 cronjob을 다시 실행하기 때문에 절전이 필요합니다. 다시로드하기 전에 60 초 이상 잠을 자야합니다. 또한 매 회전마다 구성 파일을 다시로드하므로 이러한 동작이 바람직하지 않을 수 있습니다.
왜 이러한 해킹이 필요한가요? 음, 필자의 경우 시스템에 로깅을 제대로 구성 할 수있는 권한이 없지만 uwsgi config를 변경할 수있는 권한이 있습니다.
그 daemonize-row를 사용하면 "/logs/uwsgi-.log"라는 로그 파일이 생기고 날짜 부분이 누락됩니다. 특정 버전이나 플러그인이 필요합니까? –
2.x 버전은 확실하게 작동합니다. 경로에 'date'명령이 없습니까? – roberto
너무 오래된 버전의 uwsgi (1.9.x)를 사용하고 있었는지 문제가있었습니다. 업그레이드가 문제를 해결하고 이제는 솔루션이 작동하는 것처럼 보입니다. (적어도 오늘 날짜가있는 파일을 만들었습니다). 감사! –