Skip to content

Commit 039aa27

Browse files
Merge pull request #71 from tintoy/feature/server-log-level
Implement configurable log level for language server's built-in logger.
2 parents 023ac40 + 6997768 commit 039aa27

File tree

2 files changed

+9
-5
lines changed

2 files changed

+9
-5
lines changed

src/Server/LanguageServer.cs

+5
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,11 @@ internal LanguageServer(
9090
public InitializeParams Client { get; private set; }
9191
public InitializeResult Server { get; private set; }
9292

93+
/// <summary>
94+
/// The minimum level for the server's default logger.
95+
/// </summary>
96+
public LogLevel MinimumLogLevel { get; set; } = LogLevel.Information;
97+
9398
public IDisposable AddHandler(string method, IJsonRpcHandler handler)
9499
{
95100
var handlerDisposable = _collection.Add(method, handler);

src/Server/LanguageServerLogger.cs

+4-5
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,13 @@ public IDisposable BeginScope<TState>(TState state)
2020
return new ImmutableDisposable();
2121
}
2222

23-
public bool IsEnabled(LogLevel logLevel)
24-
{
25-
// TODO: setup as configuration somehwhere (from trace perhaps?)
26-
return true;
27-
}
23+
public bool IsEnabled(LogLevel logLevel) => logLevel >= _languageServer.MinimumLogLevel;
2824

2925
public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func<TState, Exception, string> formatter)
3026
{
27+
if (logLevel < _languageServer.MinimumLogLevel)
28+
return;
29+
3130
if (TryGetMessageType(logLevel, out var messageType))
3231
{
3332
_languageServer.Log(new LogMessageParams()

0 commit comments

Comments
 (0)