From 05e228737c84c0856df3aa678a2d3d0383da442e Mon Sep 17 00:00:00 2001 From: Adam Friedman Date: Thu, 1 Feb 2018 08:31:17 +1100 Subject: [PATCH] Enable opting out of built-in logger provider. This enables consumers who have their own logging mechanisms to suppress the built-in log sinks and substitute their own ones. --- src/Server/LanguageServer.cs | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/Server/LanguageServer.cs b/src/Server/LanguageServer.cs index 136fa5d92..234ce0e86 100644 --- a/src/Server/LanguageServer.cs +++ b/src/Server/LanguageServer.cs @@ -40,7 +40,16 @@ public LanguageServer( Stream input, Stream output, ILoggerFactory loggerFactory) - : this(input, output, new LspReciever(), new RequestProcessIdentifier(), loggerFactory, new Serializer()) + : this(input, output, loggerFactory, addDefaultLoggingProvider: true) + { + } + + public LanguageServer( + Stream input, + Stream output, + ILoggerFactory loggerFactory, + bool addDefaultLoggingProvider) + : this(input, output, new LspReciever(), new RequestProcessIdentifier(), loggerFactory, new Serializer(), addDefaultLoggingProvider) { } @@ -50,11 +59,13 @@ internal LanguageServer( LspReciever reciever, IRequestProcessIdentifier requestProcessIdentifier, ILoggerFactory loggerFactory, - Serializer serializer) + Serializer serializer, + bool addDefaultLoggingProvider) { var outputHandler = new OutputHandler(output, serializer); - // TODO: This might not be the best - loggerFactory.AddProvider(new LanguageServerLoggerProvider(this)); + + if (addDefaultLoggingProvider) + loggerFactory.AddProvider(new LanguageServerLoggerProvider(this)); _reciever = reciever; _loggerFactory = loggerFactory;