@@ -26,7 +26,6 @@ public class GarnetServer : IHostedService, IDisposable
2626 private readonly GarnetServerOptions opts ;
2727 private IGarnetServer server ;
2828 private SubscribeBroker < SpanByte , SpanByte , IKeySerializer < SpanByte > > subscribeBroker ;
29- private readonly MemoryLogger initLogger ;
3029 private readonly ILogger < GarnetServer > logger ;
3130
3231 /// <summary>
@@ -52,7 +51,7 @@ public class GarnetServer : IHostedService, IDisposable
5251 public GarnetServer (
5352 IOptions < GarnetServerOptions > opts ,
5453 ILogger < GarnetServer > logger ,
55- GarnetServerTcp garnetServerTcp ,
54+ IGarnetServer garnetServerTcp ,
5655 StoreWrapper storeWrapper )
5756 {
5857 this . logger = logger ;
@@ -61,53 +60,24 @@ public GarnetServer(
6160
6261 Trace . Listeners . Add ( new ConsoleTraceListener ( ) ) ;
6362
64- // Set up an initial memory logger to log messages from configuration parser into memory.
65- using ( var memLogProvider = new MemoryLoggerProvider ( ) )
66- {
67- this . initLogger = ( MemoryLogger ) memLogProvider . CreateLogger ( "ArgParser" ) ;
68- }
69-
7063 // Assign values to GarnetServerOptions
7164 this . opts = opts . Value ;
7265 this . opts . AuthSettings = this . opts . AuthSettings ;
66+
7367 this . InitializeServer ( ) ;
7468 }
7569
7670 private void InitializeServer ( )
7771 {
78- Debug . Assert ( opts != null ) ;
79-
80- using ( logger . BeginScope ( "GarnetServer" ) )
81- {
82- logger ? . LogInformation ( "Garnet {version} {bits} bit; {clusterMode} mode; Port: {port}" , GetVersion ( ) , IntPtr . Size == 8 ? "64" : "32" , opts . EnableCluster ? "cluster" : "standalone" , opts . Port ) ;
83-
84- // Flush initialization logs from memory logger
85- FlushMemoryLogger ( this . initLogger , "ArgParser" ) ;
86-
87- var setMax = opts . ThreadPoolMaxThreads <= 0 || ThreadPool . SetMaxThreads ( opts . ThreadPoolMaxThreads , opts . ThreadPoolMaxThreads ) ;
88-
89- if ( opts . ThreadPoolMinThreads > 0 && ! ThreadPool . SetMinThreads ( opts . ThreadPoolMinThreads , opts . ThreadPoolMinThreads ) )
90- throw new Exception ( $ "Unable to call ThreadPool.SetMinThreads with { opts . ThreadPoolMinThreads } ") ;
91-
92- // Retry to set max threads if it wasn't set in the previous step
93- if ( ! setMax && ! ThreadPool . SetMaxThreads ( opts . ThreadPoolMaxThreads , opts . ThreadPoolMaxThreads ) )
94- throw new Exception ( $ "Unable to call ThreadPool.SetMaxThreads with { opts . ThreadPoolMaxThreads } ") ;
95-
96- if ( ! opts . DisablePubSub )
97- subscribeBroker = new SubscribeBroker < SpanByte , SpanByte , IKeySerializer < SpanByte > > ( new SpanByteKeySerializer ( ) , null , opts . PubSubPageSizeBytes ( ) , opts . SubscriberRefreshFrequencyMs , true ) ;
72+ // Create session provider for Garnet
73+ Provider = new GarnetProvider ( storeWrapper , subscribeBroker ) ;
9874
99- logger ? . LogTrace ( "TLS is {tlsEnabled}" , opts . TlsOptions == null ? "disabled" : "enabled" ) ;
75+ // Create user facing API endpoints
76+ Metrics = new MetricsApi ( Provider ) ;
77+ Register = new RegisterApi ( Provider ) ;
78+ Store = new StoreApi ( storeWrapper ) ;
10079
101- // Create session provider for Garnet
102- Provider = new GarnetProvider ( storeWrapper , subscribeBroker ) ;
103-
104- // Create user facing API endpoints
105- Metrics = new MetricsApi ( Provider ) ;
106- Register = new RegisterApi ( Provider ) ;
107- Store = new StoreApi ( storeWrapper ) ;
108-
109- server . Register ( WireFormat . ASCII , Provider ) ;
110- }
80+ server . Register ( WireFormat . ASCII , Provider ) ;
11181 }
11282
11383 /// <summary>
@@ -119,7 +89,7 @@ public void Start()
11989 server . Start ( ) ;
12090 Provider . Start ( ) ;
12191 if ( ! opts . QuietMode )
122- Console . WriteLine ( "* Ready to accept connections" ) ;
92+ this . logger . LogInformation ( "* Ready to accept connections" ) ;
12393 }
12494
12595 /// <summary>
@@ -158,20 +128,6 @@ private void InternalDispose()
158128 opts . AuthSettings ? . Dispose ( ) ;
159129 }
160130
161- /// <summary>
162- /// Flushes MemoryLogger entries into a destination logger.
163- /// Destination logger is either created from ILoggerFactory parameter or from a default console logger.
164- /// </summary>
165- /// <param name="memoryLogger">The memory logger</param>
166- /// <param name="categoryName">The category name of the destination logger</param>
167- private void FlushMemoryLogger ( MemoryLogger memoryLogger , string categoryName )
168- {
169- using ( this . logger . BeginScope ( categoryName ) )
170- {
171- memoryLogger . FlushLogger ( this . logger ) ;
172- }
173- }
174-
175131 public Task StartAsync ( CancellationToken cancellationToken )
176132 {
177133 Start ( ) ;
0 commit comments