diff --git a/System/Error/Logger.php b/System/Error/Logger.php index 62da59e8..1cf29f28 100644 --- a/System/Error/Logger.php +++ b/System/Error/Logger.php @@ -160,14 +160,21 @@ class Logger extends Component if (empty($messages)) { return; } - $logFile = '[' . date('Y-m-d H:i:s') . ']:' . PHP_EOL . $messages . PHP_EOL; - /** @var Process $logger */ - $logger = Snowflake::app()->get(LoggerProcess::class, false); - if (empty($logger)) { - return; + $fileName = 'server-' . date('Y-m-d') . '.log'; + $dirName = 'log/' . (empty($method) ? 'app' : $method); + $logFile = '[' . date('Y-m-d H:i:s') . ']:' . PHP_EOL . $messages . PHP_EOL; + Snowflake::writeFile(storage($fileName, $dirName), $logFile, FILE_APPEND); + + $files = glob(storage(null, $dirName) . '/*'); + if (count($files) >= 15) { + $command = 'find ' . storage(null, $dirName) . '/ -mtime +15 -name "*.log" -exec rm -rf {} \;'; + if (Context::inCoroutine()) { + Coroutine\System::exec($command); + } else { + \shell_exec($command); + } } - $logger->write(Json::encode([$logFile, $method])); } /**