У меня есть аналогичный вопрос к вот этот у которого, похоже, нет счастливого решения. В нем упоминается использование rotatelog.exe
который является частью инфраструктуры Apache и недоступен мне.
Я унаследовал веб-сервер Windows 2012 R2 от своего предшественника, он обслуживает файлы PHP через IIS 8.5. Недавно я попытался диагностировать проблему на одном из наших сайтов, но обнаружил, что размер журнала ошибок PHP составляет несколько ГБ (начиная с 2013 года).
В идеале я хотел бы обновлять эти журналы на ежедневной или ежемесячной основе.
Как я могу этого добиться? PHP - это 5.4, но приемлем метод для любой версии.
Я решил это с помощью пакетного сценария и добавил сценарий для ежедневного выполнения в планировщик задач. Я знаю, что могу написать это в PowerShell, но я недостаточно знаком с оболочкой для этого.
Это мой пакетный сценарий:
:: Batch script to rotate PHP logs
@ECHO OFF
SETLOCAL ENABLEEXTENSIONS
SET logPath=c:\php\logs\
SET currentLog=PHP54_errors.log
FOR /F %%A IN ('WMIC OS GET LocalDateTime ^| FINDSTR \.') DO @SET B=%%A
MOVE %logPath%%currentLog% %logPath%%B:~0,4%-%B:~4,2%-%B:~6,2%.log