Dreamine.Logging
1.0.2
Dreamine.Logging 프로젝트의 API와 구성 요소를 제공합니다.
Toggle main menu visibility
로딩중...
검색중...
일치하는것 없음
DreamineLoggingRegistration.cs
이 파일의 문서화 페이지로 가기
1
using
System;
2
using
Dreamine.Logging.Formatters
;
3
using
Dreamine.Logging.Interfaces
;
4
using
Dreamine.Logging.Models
;
5
using
Dreamine.Logging.Options
;
6
using
Dreamine.Logging.Services
;
7
using
Dreamine.Logging.Sinks
;
8
using
Dreamine.MVVM.Core;
9
10
namespace
Dreamine.Logging.Registration
;
11
20
public
static
class
DreamineLoggingRegistration
21
{
46
public
static
IAsyncDisposable
Register
(Action<DreamineLoggingOptions>? configure =
null
)
47
{
48
var options =
new
DreamineLoggingOptions
();
49
configure?.Invoke(options);
50
51
return
Register
(options);
52
}
53
86
public
static
IAsyncDisposable
Register
(
DreamineLoggingOptions
options)
87
{
88
ArgumentNullException.ThrowIfNull(options);
89
90
var logStore =
new
InMemoryLogStore
(options.
StoreCapacity
);
91
var formatter =
new
DreamineTextLogFormatter
();
92
93
var textFileSink =
new
TextFileLogSink
(
94
options.
LogDirectory
,
95
formatter,
96
options.
FlushEveryWriteCount
);
97
98
var compositeSink =
new
CompositeLogSink
(
new
IDreamineLogSink
[]
99
{
100
logStore,
101
textFileSink
102
});
103
104
var asyncSink =
new
AsyncQueueSink
(
105
compositeSink,
106
options.
QueueCapacity
,
107
options.
DrainBatchSize
);
108
109
var logger =
new
DreamineLogger
(
110
new
IDreamineLogSink
[] { asyncSink },
111
DreamineLogLevel
.Trace,
112
options.
Category
);
113
114
DMContainer.RegisterSingleton(logStore);
115
DMContainer.RegisterSingleton<
IDreamineLogStore
>(logStore);
116
DMContainer.RegisterSingleton<
IDreamineLogFormatter
>(formatter);
117
DMContainer.RegisterSingleton(asyncSink);
118
DMContainer.RegisterSingleton<
IDreamineLogSink
>(asyncSink);
119
DMContainer.RegisterSingleton<
IDreamineLogger
>(logger);
120
121
return
new
LoggingShutdownHandle
(asyncSink, options.
ShutdownTimeout
);
122
}
123
132
private
sealed
class
LoggingShutdownHandle
: IAsyncDisposable
133
{
142
private
readonly
AsyncQueueSink
_asyncSink
;
151
private
readonly TimeSpan
_shutdownTimeout
;
152
177
public
LoggingShutdownHandle
(
AsyncQueueSink
asyncSink, TimeSpan shutdownTimeout)
178
{
179
_asyncSink
= asyncSink;
180
_shutdownTimeout
= shutdownTimeout;
181
}
182
199
public
async ValueTask
DisposeAsync
()
200
{
201
await
_asyncSink
.ShutdownAsync(
_shutdownTimeout
).ConfigureAwait(
false
);
202
}
203
}
204
}
Dreamine.Logging.Formatters
Definition
DreamineTextLogFormatter.cs:7
Dreamine.Logging.Interfaces
Definition
IDreamineLogFormatter.cs:3
Dreamine.Logging.Models
Definition
DreamineLogEntry.cs:3
Dreamine.Logging.Models.DreamineLogLevel
DreamineLogLevel
Definition
DreamineLogLevel.cs:12
Dreamine.Logging.Options
Definition
DreamineLoggingOptions.cs:3
Dreamine.Logging.Registration
Definition
DreamineLoggingRegistration.cs:10
Dreamine.Logging.Services
Definition
DreamineLogger.cs:5
Dreamine.Logging.Sinks
Definition
AsyncQueueSink.cs:10
Dreamine.Logging.Formatters.DreamineTextLogFormatter
Definition
DreamineTextLogFormatter.cs:17
Dreamine.Logging.Interfaces.IDreamineLogFormatter
Definition
IDreamineLogFormatter.cs:14
Dreamine.Logging.Interfaces.IDreamineLogger
Definition
IDreamineLogger.cs:14
Dreamine.Logging.Interfaces.IDreamineLogSink
Definition
IDreamineLogSink.cs:14
Dreamine.Logging.Interfaces.IDreamineLogStore
Definition
IDreamineLogStore.cs:14
Dreamine.Logging.Options.DreamineLoggingOptions
Definition
DreamineLoggingOptions.cs:14
Dreamine.Logging.Options.DreamineLoggingOptions.Category
string Category
Definition
DreamineLoggingOptions.cs:23
Dreamine.Logging.Options.DreamineLoggingOptions.FlushEveryWriteCount
int FlushEveryWriteCount
Definition
DreamineLoggingOptions.cs:74
Dreamine.Logging.Options.DreamineLoggingOptions.ShutdownTimeout
TimeSpan ShutdownTimeout
Definition
DreamineLoggingOptions.cs:84
Dreamine.Logging.Options.DreamineLoggingOptions.StoreCapacity
int StoreCapacity
Definition
DreamineLoggingOptions.cs:44
Dreamine.Logging.Options.DreamineLoggingOptions.DrainBatchSize
int DrainBatchSize
Definition
DreamineLoggingOptions.cs:64
Dreamine.Logging.Options.DreamineLoggingOptions.LogDirectory
string LogDirectory
Definition
DreamineLoggingOptions.cs:33
Dreamine.Logging.Options.DreamineLoggingOptions.QueueCapacity
int QueueCapacity
Definition
DreamineLoggingOptions.cs:54
Dreamine.Logging.Registration.DreamineLoggingRegistration
Definition
DreamineLoggingRegistration.cs:21
Dreamine.Logging.Registration.DreamineLoggingRegistration.Register
static IAsyncDisposable Register(DreamineLoggingOptions options)
Definition
DreamineLoggingRegistration.cs:86
Dreamine.Logging.Registration.DreamineLoggingRegistration.Register
static IAsyncDisposable Register(Action< DreamineLoggingOptions >? configure=null)
Definition
DreamineLoggingRegistration.cs:46
Dreamine.Logging.Registration.DreamineLoggingRegistration.LoggingShutdownHandle
Definition
DreamineLoggingRegistration.cs:133
Dreamine.Logging.Registration.DreamineLoggingRegistration.LoggingShutdownHandle._shutdownTimeout
readonly TimeSpan _shutdownTimeout
Definition
DreamineLoggingRegistration.cs:151
Dreamine.Logging.Registration.DreamineLoggingRegistration.LoggingShutdownHandle.LoggingShutdownHandle
LoggingShutdownHandle(AsyncQueueSink asyncSink, TimeSpan shutdownTimeout)
Definition
DreamineLoggingRegistration.cs:177
Dreamine.Logging.Registration.DreamineLoggingRegistration.LoggingShutdownHandle._asyncSink
readonly AsyncQueueSink _asyncSink
Definition
DreamineLoggingRegistration.cs:142
Dreamine.Logging.Registration.DreamineLoggingRegistration.LoggingShutdownHandle.DisposeAsync
async ValueTask DisposeAsync()
Definition
DreamineLoggingRegistration.cs:199
Dreamine.Logging.Services.DreamineLogger
Definition
DreamineLogger.cs:16
Dreamine.Logging.Services.InMemoryLogStore
Definition
InMemoryLogStore.cs:26
Dreamine.Logging.Sinks.AsyncQueueSink
Definition
AsyncQueueSink.cs:28
Dreamine.Logging.Sinks.CompositeLogSink
Definition
CompositeLogSink.cs:26
Dreamine.Logging.Sinks.TextFileLogSink
Definition
TextFileLogSink.cs:26
Registration
DreamineLoggingRegistration.cs
다음에 의해 생성됨 :
1.17.0