Очень большой лог ошибок
Всем привет. Проблема в том, что файл /core/cache/logs/error.log очень быстро разрастается. У меня каждые 12 часов происходит выгрузка остатков на сайт, за сутки забиваются логи мегабайт на 40. Можно как-то автоматически этот файл удалять после каждой выгрузки?
Всё его содержимое такого вида:
Всё его содержимое такого вида:
[2015-07-16 11:52:58] (ERROR @ /assets/components/msklad/1c_exchange.php) Resource URI joma-futzalki-top-flex-topw.fi.html already exists for resource id = 3363; skipping duplicate resource URI for resource id = 3364
Комментарии: 3
можно очистить так
$modx->runProcessor('system/errorlog/clear');
Часто сталкиваюсь с тем, что лог забивается спустя несколько месяцев. Сделал сайт, а потом тебе пишут, типа: «что-то случилось с админкой, что делать??». Когда сервер не может его открыть для записи из-за нехватки памяти. Надоело, написал небольшой плагин, может кому пригодится:
Должно быть включено расширение php_zip на сервере. При достижении размера в 5 мб рядом с логом ошибок создаётся архив с его копией, а основной лог затирается.
<?php
if( in_array($modx->event->name, ['OnManagerPageInit','OnBeforeManagerLogin']) ) {
$logpath = MODX_CORE_PATH . 'cache/logs/error.log';
if(filesize($logpath) > 5000000) {
$logcontent = file_get_contents($logpath);
$filename = 'error-'. date("Y-d-m_H:i:s");
$zip = new ZipArchive();
$zip->open(MODX_CORE_PATH . 'cache/logs/'. $filename . '.zip', ZipArchive::CREATE);
$zip->addFromString($filename . '.txt', $logcontent);
$zip->close();
$modx->runProcessor('system/errorlog/clear');
}
}
Должно быть включено расширение php_zip на сервере. При достижении размера в 5 мб рядом с логом ошибок создаётся архив с его копией, а основной лог затирается.
В $filename месяц и день только местами поменять)
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.