@@ -135,7 +135,7 @@ public void Flush() {
135
135
LogEntry entry ;
136
136
while ( _buffer . TryDequeue ( out entry ) ) {
137
137
if ( entry != null && entry . LogLevel >= MinimumLogLevel )
138
- writer . Value . WriteLine ( entry . Message ) ;
138
+ writer . Value . WriteLine ( $ " { FormatLongDate ( entry . Timestamp ) } { entry . LogLevel . ToString ( ) . PadRight ( 5 ) } { entry . Message } " ) ;
139
139
}
140
140
}
141
141
} catch ( Exception ex ) {
@@ -154,6 +154,36 @@ public void Flush() {
154
154
}
155
155
}
156
156
157
+ private string FormatLongDate ( DateTime timestamp ) {
158
+ var builder = new StringBuilder ( ) ;
159
+ Append4DigitsZeroPadded ( timestamp . Year ) ;
160
+ builder . Append ( '-' ) ;
161
+ Append2DigitsZeroPadded ( timestamp . Month ) ;
162
+ builder . Append ( '-' ) ;
163
+ Append2DigitsZeroPadded ( timestamp . Day ) ;
164
+ builder . Append ( ' ' ) ;
165
+ Append2DigitsZeroPadded ( timestamp . Hour ) ;
166
+ builder . Append ( ':' ) ;
167
+ Append2DigitsZeroPadded ( timestamp . Minute ) ;
168
+ builder . Append ( ':' ) ;
169
+ Append2DigitsZeroPadded ( timestamp . Second ) ;
170
+ builder . Append ( '.' ) ;
171
+ Append4DigitsZeroPadded ( ( int ) ( timestamp . Ticks % 10000000 ) / 1000 ) ;
172
+ return builder . ToString ( ) ;
173
+
174
+ void Append4DigitsZeroPadded ( int number ) {
175
+ builder . Append ( ( char ) ( number / 1000 % 10 + 0x30 ) ) ;
176
+ builder . Append ( ( char ) ( number / 100 % 10 + 0x30 ) ) ;
177
+ builder . Append ( ( char ) ( number / 10 % 10 + 0x30 ) ) ;
178
+ builder . Append ( ( char ) ( number / 1 % 10 + 0x30 ) ) ;
179
+ }
180
+
181
+ void Append2DigitsZeroPadded ( int number ) {
182
+ builder . Append ( ( char ) ( number / 10 + 0x30 ) ) ;
183
+ builder . Append ( ( char ) ( number % 10 + 0x30 ) ) ;
184
+ }
185
+ }
186
+
157
187
private readonly ConcurrentQueue < LogEntry > _buffer = new ConcurrentQueue < LogEntry > ( ) ;
158
188
private void WriteEntry ( LogLevel level , string entry ) {
159
189
_buffer . Enqueue ( new LogEntry ( level , entry ) ) ;
@@ -249,8 +279,10 @@ private class LogEntry {
249
279
public LogEntry ( LogLevel level , string message ) {
250
280
LogLevel = level ;
251
281
Message = message ;
282
+ Timestamp = DateTime . Now ;
252
283
}
253
284
285
+ public DateTime Timestamp { get ; set ; }
254
286
public LogLevel LogLevel { get ; set ; }
255
287
public string Message { get ; set ; }
256
288
}
0 commit comments