@@ -283,6 +283,34 @@ public async Task Trace_LogFileDeleted_CreatesNewFile()
283
283
Assert . True ( logLine . EndsWith ( "[Info] test trace" ) ) ;
284
284
}
285
285
286
+ [ Fact ]
287
+ public void Trace_LogFileOpened_WritesSuccessfully ( )
288
+ {
289
+ var traceWriter = new TestFileTraceWriter ( _logFilePath , TraceLevel . Info , LogType . Host , true ) ;
290
+
291
+ traceWriter . Info ( "test trace" ) ;
292
+ traceWriter . Flush ( ) ;
293
+
294
+ var directory = new DirectoryInfo ( _logFilePath ) ;
295
+ var logFile = directory . EnumerateFiles ( ) . Single ( ) ;
296
+
297
+ // open the log file with ReadWrite to make sure logging
298
+ // is still possible
299
+ var logFileStream = logFile . Open ( FileMode . Open , FileAccess . Read , FileShare . ReadWrite ) ;
300
+
301
+ traceWriter . Info ( "test trace 2" ) ;
302
+ traceWriter . Flush ( ) ;
303
+
304
+ logFileStream . Close ( ) ;
305
+
306
+ // verify that both lines were written successfully
307
+ var fileLines = File . ReadAllLines ( logFile . FullName ) ;
308
+ Assert . Equal ( 2 , fileLines . Length ) ;
309
+ Assert . Collection ( fileLines ,
310
+ t => Assert . EndsWith ( "test trace" , t ) ,
311
+ t => Assert . EndsWith ( "test trace 2" , t ) ) ;
312
+ }
313
+
286
314
private void WriteLogs ( string logFilePath , int numLogs , Action < bool , object > flushCallback = null , bool disableTimers = true , object state = null )
287
315
{
288
316
FileTraceWriter traceWriter = new TestFileTraceWriter ( logFilePath , TraceLevel . Verbose , LogType . Host , disableTimers , flushCallback , state ) ;
0 commit comments