Example #1
0
        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);
                    }
                });
            });
        }