Merge 6fc76d15ab
into 96c7db6855
commit
0b72651e8e
|
@ -2,9 +2,10 @@
|
||||||
|
|
||||||
use LanguageServer\{LanguageServer, ProtocolStreamReader, ProtocolStreamWriter};
|
use LanguageServer\{LanguageServer, ProtocolStreamReader, ProtocolStreamWriter};
|
||||||
use Sabre\Event\Loop;
|
use Sabre\Event\Loop;
|
||||||
use Symfony\Component\Debug\ErrorHandler;
|
|
||||||
use Monolog\Logger;
|
use Monolog\Logger;
|
||||||
use Monolog\Handler\StreamHandler;
|
use Monolog\Handler\StreamHandler;
|
||||||
|
use Monolog\Formatter\LineFormatter;
|
||||||
|
use Monolog\ErrorHandler;
|
||||||
|
|
||||||
$options = getopt('', ['tcp::', 'memory-limit::']);
|
$options = getopt('', ['tcp::', 'memory-limit::']);
|
||||||
|
|
||||||
|
@ -17,11 +18,37 @@ foreach ([__DIR__ . '/../../../autoload.php', __DIR__ . '/../autoload.php', __DI
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$logger = new Logger('Errors');
|
function errorHandler($level, $message, $file, $line) {
|
||||||
$logger->pushHandler(new StreamHandler(STDERR));
|
// error code is not included in error_reporting
|
||||||
$errorHandler = new ErrorHandler;
|
if (!(error_reporting() & $level)) {
|
||||||
$errorHandler->setDefaultLogger($logger);
|
return;
|
||||||
ErrorHandler::register($errorHandler);
|
}
|
||||||
|
|
||||||
|
if ($level !== E_DEPRECATED && $level !== E_USER_DEPRECATED) {
|
||||||
|
throw new \ErrorException($message, 0, $level, $file, $line);
|
||||||
|
}
|
||||||
|
|
||||||
|
fwrite(STDERR, 'Deprecation Notice: '.$message.' in '.$file.':'.$line.'</warning>');
|
||||||
|
}
|
||||||
|
|
||||||
|
function setupLogging() {
|
||||||
|
error_reporting(E_ALL | E_STRICT);
|
||||||
|
set_error_handler('errorHandler');
|
||||||
|
|
||||||
|
$formatter = new LineFormatter("[%datetime%] %level_name%: %message% %context% %extra%\n");
|
||||||
|
$formatter->includeStacktraces(true);
|
||||||
|
$formatter->ignoreEmptyContextAndExtra(true);
|
||||||
|
|
||||||
|
$handler = new StreamHandler(STDERR);
|
||||||
|
$handler->setFormatter($formatter);
|
||||||
|
|
||||||
|
$logger = new Logger('php language server');
|
||||||
|
$logger->pushHandler($handler);
|
||||||
|
|
||||||
|
ErrorHandler::register($logger, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
setupLogging();
|
||||||
|
|
||||||
@cli_set_process_title('PHP Language Server');
|
@cli_set_process_title('PHP Language Server');
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue