public void OnFlush(FlushLogArgs args, ILogger logger) { if (FlushTrigger == FlushTrigger.OnFlush) { IEnumerable <LogMessage> logMessages = args.MessagesGroups.SelectMany(p => p.Messages).OrderBy(p => p.DateTime).ToList(); string filePath = GetFileName(_logsDirectoryFullPath); lock (Locker) { using (StreamWriter sw = System.IO.File.AppendText(filePath)) { if (args.WebProperties != null) { sw.WriteLine(_textFormatter.FormatFlush(args.WebProperties)); } foreach (var logMessage in logMessages) { sw.WriteLine(_textFormatter.FormatLogMessage(logMessage)); } } } } else if (FlushTrigger == FlushTrigger.OnMessage) { string filePath = GetFileName(_logsDirectoryFullPath); lock (Locker) { using (StreamWriter sw = System.IO.File.AppendText(filePath)) { sw.WriteLine(_textFormatter.FormatEndRequest(args.WebProperties.Request, args.WebProperties.Response)); } } } }