podstawie odpowiedzi Roberto tu jest konfiguracja, która będzie obracać logi. Będzie przechowywać do 14 plików dziennika. Codzienna rotacja o 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 --; } &
Uśpienie jest potrzebne, ponieważ po ponownym załadowaniu uwsgi ponownie wykona cronjob, ponieważ pasuje do bieżącego czasu. Dlatego potrzebujemy snu przez ponad 60 sekund przed ponownym załadowaniem. Odświeża również plik konfiguracyjny przy każdym obrocie, takie zachowanie może nie być pożądane.
Dlaczego ktoś potrzebuje takiego hacka? Cóż, w moim przypadku nie mam dostępu do prawidłowej konfiguracji logowania w systemie, ale mam pozwolenie na zmianę konfiguracji uwsgi.
W tym wierszu demona uzyskuję plik dziennika o nazwie "/logs/uwsgi-.log", brakuje części daty. Czy wymaga określonej wersji lub wtyczki? –
2.x wersje działają na pewno, może nie masz polecenia "date" na ścieżce? – roberto
Problem polegał na tym, że używałem zbyt starej wersji programu uwsgi (1.9.x). Aktualizacja rozwiązała problem, a teraz twoje rozwiązanie wydaje się działać. (Przynajmniej utworzył plik z dzisiejszą datą). Dzięki! –