1
0
Fork 0
pull/152/merge
Jordi Boggiano 2016-11-16 15:59:47 +00:00 committed by GitHub
commit 0b72651e8e
1 changed files with 33 additions and 6 deletions

View File

@ -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');