private void WriteFile(string logPrefix, string format, params object[] args) { var now = DateTime.Now; var logFile = logPrefix + $"{now.ToString("yyyyMMdd")}.txt"; var dir = Path.GetDirectoryName(logFile) ?? ""; if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); } var msg = args != null && args.Length > 0 ? string.Format(format, args) : format; msg = now.ToString("yyyy-MM-dd HH:mm:ss.fff") + " " + msg; // 异步写入日志 Task.Factory.StartNew(async() => { await locker.DoAction(async() => { using (var sw = new StreamWriter(logFile, true, Encoding.UTF8)) { await sw.WriteLineAsync(msg); } }); }); }