Skip to content

Commit e03d494

Browse files
committed
more
1 parent 60d9618 commit e03d494

File tree

4 files changed

+23
-54
lines changed

4 files changed

+23
-54
lines changed
Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,17 @@
11
namespace CSharpLanguageServer
22

3+
open Microsoft.Extensions.Logging
4+
35
open CSharpLanguageServer.Types
46
open CSharpLanguageServer.Logging
57

68
module Diagnostics =
79
let private logger = Logging.getLoggerByName "Diagnostics"
810

911
let diagnoseSolution (settings: ServerSettings): int =
10-
logger.debug (
11-
Log.setMessage "diagnoseSolution: loading solution {sln}"
12-
>> Log.addContext "sln" settings.SolutionPath
13-
)
12+
logger.LogDebug("diagnoseSolution: loading solution, settings={settings}", settings.SolutionPath)
1413

15-
logger.error (
16-
Log.setMessage "diagnoseSolution: loading solution {sln}"
17-
>> Log.addContext "sln" settings.SolutionPath
18-
)
14+
logger.LogError("diagnoseSolution: loading solution {sln}", settings.SolutionPath)
1915

2016
let exitCode = 0
2117
exitCode

src/CSharpLanguageServer/Program.fs

Lines changed: 16 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,9 @@ open Microsoft.Extensions.Logging
88

99
open CSharpLanguageServer.Types
1010
open CSharpLanguageServer.Lsp
11-
<<<<<<< HEAD
1211
open CSharpLanguageServer.Logging
13-
=======
1412
open CSharpLanguageServer.Diagnostics
1513

16-
>>>>>>> 756634c (Add "Diagnose" argument)
1714

1815
type CLIArguments =
1916
| [<AltCommandLine("-v")>] Version
@@ -26,46 +23,31 @@ type CLIArguments =
2623
match s with
2724
| Version -> "Display versioning information"
2825
| Solution _ -> "Specify .sln file to load (relative to CWD)"
29-
| LogLevel _ -> "Set log level, <log|info|warning|error>; default is `log`"
26+
| LogLevel _ -> "Set log level, <trace|debug|info|warning|error>; default is `info`"
3027
| Diagnose -> "Run diagnostics"
3128

3229

33-
let configureLogger (logLevelArg: string): unit =
34-
System.Console.Error.WriteLine("configureLogger; logLevelArg={0}", logLevelArg)
35-
let logLevel =
36-
match logLevelArg with
37-
| "error" -> LogEventLevel.Error
38-
| "warning" -> LogEventLevel.Warning
39-
| "info" -> LogEventLevel.Information
40-
| "log" -> LogEventLevel.Verbose
41-
| _ -> LogEventLevel.Information
42-
43-
let logConfig =
44-
LoggerConfiguration()
45-
.MinimumLevel.ControlledBy(LoggingLevelSwitch(logLevel))
46-
.Enrich.FromLogContext()
47-
.WriteTo.Async(fun conf ->
48-
conf.Console(
49-
outputTemplate =
50-
"[{Timestamp:HH:mm:ss.fff} {Level:u3}] [{SourceContext}] {Message:lj}{NewLine}{Exception}",
51-
// Redirect all logs to stderr since stdout is used to communicate with client.
52-
standardErrorFromLevel = Nullable<_>(LogEventLevel.Verbose),
53-
theme = Serilog.Sinks.SystemConsole.Themes.AnsiConsoleTheme.Code
54-
)
55-
|> ignore)
56-
57-
Log.Logger <- logConfig.CreateLogger()
58-
59-
6030
[<EntryPoint>]
6131
let entry args =
6232
let argParser = ArgumentParser.Create<CLIArguments>(programName = "csharp-ls")
6333
let serverArgs = argParser.Parse args
6434

35+
let parseLogLevel logLevelArg =
36+
match logLevelArg with
37+
| "error" -> LogLevel.Error
38+
| "warning" -> LogLevel.Warning
39+
| "info" -> LogLevel.Information
40+
| "debug" -> LogLevel.Debug
41+
| "trace" -> LogLevel.Trace
42+
| _ -> LogLevel.Information
43+
6544
let settings = {
6645
ServerSettings.Default with
6746
SolutionPath = serverArgs.TryGetResult <@ Solution @>
68-
LogLevel = serverArgs.TryGetResult(<@ LogLevel @>) |> Option.defaultValue "log"
47+
LogLevel =
48+
serverArgs.TryGetResult(<@ LogLevel @>)
49+
|> Option.map parseLogLevel
50+
|> Option.defaultValue LogLevel.Information
6951
}
7052

7153
try
@@ -76,11 +58,11 @@ let entry args =
7658

7759
match serverArgs.TryGetResult <@ Diagnose @> with
7860
| Some _ ->
79-
configureLogger "log"
61+
Logging.setupLogging LogLevel.Trace
8062
diagnoseSolution settings
8163

8264
| _ ->
83-
configureLogger settings.LogLevel
65+
Logging.setupLogging settings.LogLevel
8466
Server.start settings
8567

8668
with

src/CSharpLanguageServer/Types.fs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,16 @@ module CSharpLanguageServer.Types
33
open Ionide.LanguageServerProtocol
44
open Ionide.LanguageServerProtocol.Types
55
open Ionide.LanguageServerProtocol.JsonRpc
6+
open Microsoft.Extensions.Logging
67

78
type ServerSettings =
89
{ SolutionPath: string option
9-
LogLevel: string
10+
LogLevel: LogLevel
1011
ApplyFormattingOptions: bool
1112
}
1213
static member Default: ServerSettings =
1314
{ SolutionPath = None
14-
LogLevel = "log"
15+
LogLevel = LogLevel.Information
1516
ApplyFormattingOptions = false
1617
}
1718

tests/CSharpLanguageServer.Tests/CSharpLanguageServer.Tests.fsproj

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,7 @@
99

1010
<ItemGroup>
1111
<Compile Include="Tooling.fs" />
12-
<Compile Include="CodeActionTests.fs" />
13-
<Compile Include="DiagnosticTests.fs" />
14-
<Compile Include="DocumentationTests.fs" />
15-
<Compile Include="HoverTests.fs" />
16-
<Compile Include="InitializationTests.fs" />
17-
<Compile Include="ReferenceTests.fs" />
18-
<Compile Include="DefinitionTests.fs" />
19-
<Compile Include="DocumentFormattingTests.fs" />
20-
<Compile Include="InternalTests.fs" />
2112
<Compile Include="CompletionTests.fs" />
22-
<Compile Include="WorkspaceSymbolTests.fs" />
2313
</ItemGroup>
2414

2515
<ItemGroup>

0 commit comments

Comments
 (0)