diff --git a/src/Razor/src/Microsoft.VisualStudio.LanguageServices.Razor/Logging/MemoryLoggerProvider.Buffer.cs b/src/Razor/src/Microsoft.CodeAnalysis.Razor.Workspaces/Logging/AbstractMemoryLoggerProvider.Buffer.cs similarity index 87% rename from src/Razor/src/Microsoft.VisualStudio.LanguageServices.Razor/Logging/MemoryLoggerProvider.Buffer.cs rename to src/Razor/src/Microsoft.CodeAnalysis.Razor.Workspaces/Logging/AbstractMemoryLoggerProvider.Buffer.cs index c324d98f381..7dd6e9296f9 100644 --- a/src/Razor/src/Microsoft.VisualStudio.LanguageServices.Razor/Logging/MemoryLoggerProvider.Buffer.cs +++ b/src/Razor/src/Microsoft.CodeAnalysis.Razor.Workspaces/Logging/AbstractMemoryLoggerProvider.Buffer.cs @@ -4,9 +4,9 @@ using System; using System.Threading; -namespace Microsoft.VisualStudio.Razor.Logging; +namespace Microsoft.CodeAnalysis.Razor.Logging; -internal partial class MemoryLoggerProvider +internal partial class AbstractMemoryLoggerProvider { /// /// A circular in memory buffer to store logs in memory. diff --git a/src/Razor/src/Microsoft.VisualStudio.LanguageServices.Razor/Logging/MemoryLoggerProvider.Logger.cs b/src/Razor/src/Microsoft.CodeAnalysis.Razor.Workspaces/Logging/AbstractMemoryLoggerProvider.Logger.cs similarity index 83% rename from src/Razor/src/Microsoft.VisualStudio.LanguageServices.Razor/Logging/MemoryLoggerProvider.Logger.cs rename to src/Razor/src/Microsoft.CodeAnalysis.Razor.Workspaces/Logging/AbstractMemoryLoggerProvider.Logger.cs index 0603558eefe..1de03dff361 100644 --- a/src/Razor/src/Microsoft.VisualStudio.LanguageServices.Razor/Logging/MemoryLoggerProvider.Logger.cs +++ b/src/Razor/src/Microsoft.CodeAnalysis.Razor.Workspaces/Logging/AbstractMemoryLoggerProvider.Logger.cs @@ -2,11 +2,10 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; -using Microsoft.CodeAnalysis.Razor.Logging; -namespace Microsoft.VisualStudio.Razor.Logging; +namespace Microsoft.CodeAnalysis.Razor.Logging; -internal partial class MemoryLoggerProvider +internal partial class AbstractMemoryLoggerProvider { private class Logger(Buffer buffer, string categoryName) : ILogger { diff --git a/src/Razor/src/Microsoft.CodeAnalysis.Razor.Workspaces/Logging/AbstractMemoryLoggerProvider.cs b/src/Razor/src/Microsoft.CodeAnalysis.Razor.Workspaces/Logging/AbstractMemoryLoggerProvider.cs new file mode 100644 index 00000000000..afd6fc3f22b --- /dev/null +++ b/src/Razor/src/Microsoft.CodeAnalysis.Razor.Workspaces/Logging/AbstractMemoryLoggerProvider.cs @@ -0,0 +1,14 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace Microsoft.CodeAnalysis.Razor.Logging; + +internal abstract partial class AbstractMemoryLoggerProvider : ILoggerProvider +{ + // How many messages will the buffer contain + private const int BufferSize = 5000; + private readonly Buffer _buffer = new(BufferSize); + + public ILogger CreateLogger(string categoryName) + => new Logger(_buffer, categoryName); +} diff --git a/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Logging/MemoryLoggerProvider.cs b/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Logging/MemoryLoggerProvider.cs new file mode 100644 index 00000000000..e654dd11f04 --- /dev/null +++ b/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Logging/MemoryLoggerProvider.cs @@ -0,0 +1,10 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using Microsoft.CodeAnalysis.Razor.Logging; + +namespace Microsoft.CodeAnalysis.Remote.Razor.Logging; + +internal sealed class MemoryLoggerProvider : AbstractMemoryLoggerProvider +{ +} diff --git a/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Logging/TraceSourceLoggerFactory.cs b/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Logging/TraceSourceLoggerFactory.cs index 4d9e4f78303..ccbbd0c563c 100644 --- a/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Logging/TraceSourceLoggerFactory.cs +++ b/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Logging/TraceSourceLoggerFactory.cs @@ -6,7 +6,10 @@ namespace Microsoft.CodeAnalysis.Remote.Razor.Logging; -internal sealed partial class TraceSourceLoggerFactory(TraceSource traceSource) : AbstractLoggerFactory([new LoggerProvider(traceSource)]) +internal sealed partial class TraceSourceLoggerFactory(TraceSource traceSource) + : AbstractLoggerFactory([ + new LoggerProvider(traceSource), + new MemoryLoggerProvider()]) { public TraceSource TraceSource { get; } = traceSource; } diff --git a/src/Razor/src/Microsoft.VisualStudio.LanguageServices.Razor/Logging/MemoryLoggerProvider.cs b/src/Razor/src/Microsoft.VisualStudio.LanguageServices.Razor/Logging/MemoryLoggerProvider.cs index 88916dfbb35..bd4810fca68 100644 --- a/src/Razor/src/Microsoft.VisualStudio.LanguageServices.Razor/Logging/MemoryLoggerProvider.cs +++ b/src/Razor/src/Microsoft.VisualStudio.LanguageServices.Razor/Logging/MemoryLoggerProvider.cs @@ -6,12 +6,6 @@ namespace Microsoft.VisualStudio.Razor.Logging; [ExportLoggerProvider] -internal partial class MemoryLoggerProvider : ILoggerProvider +internal sealed class MemoryLoggerProvider : AbstractMemoryLoggerProvider { - // How many messages will the buffer contain - private const int BufferSize = 5000; - private readonly Buffer _buffer = new(BufferSize); - - public ILogger CreateLogger(string categoryName) - => new Logger(_buffer, categoryName); }