public static class CreatLog
{
static string _filePath = AppDomain.CurrentDomain.BaseDirectory + "Log";
static Dictionary<DateTime, StreamWriter> _dicStreamWriter = new Dictionary<DateTime, StreamWriter>();
/// <summary>
/// 写入日志
/// </summary>
/// <param name="msg">打印内容</param>
/// <param name="bo">成功失败</param>
public static void WriteLog(string msg, bool bo)
{
var time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ff");
if (!Directory.Exists(_filePath))
{
Directory.CreateDirectory(_filePath);
}
DateTime fileName = DateTime.Now.Date;
try
{
if (!_dicStreamWriter.ContainsKey(fileName))
{
_dicStreamWriter.Add(fileName, File.AppendText(AppDomain.CurrentDomain.BaseDirectory + "Log\\" + fileName.ToString("yyyy-MM-dd") + ".txt"));
}
var dicTemp = _dicStreamWriter.Where(o => o.Key < fileName.AddDays(-1)).Select(o => o.Key).ToList(); // 获取最近两天之前的数据
foreach (DateTime item in dicTemp)
{
_dicStreamWriter.Remove(item);
}
_dicStreamWriter[fileName].Write($"【{time}】");
if (bo)
_dicStreamWriter[fileName].WriteLine($"消息【正常】:" + msg);
else
_dicStreamWriter[fileName].WriteLine($"消息【异常】:" + msg);
}
catch (IOException e)
{
_dicStreamWriter[fileName].WriteLine($"日志打印异常:{e.Message}");
}
finally
{
_dicStreamWriter[fileName].Flush();
}
}
}
流程记录日志
最新推荐文章于 2024-04-17 15:42:38 发布
本文详细探讨了在C#中如何实现流程记录和日志管理,包括关键步骤的跟踪、错误处理以及日志文件的存储和检索。通过实例代码展示了如何使用内置的日志类和其他第三方库来优化日志系统,提升应用的可维护性和故障排查效率。
556

被折叠的 条评论
为什么被折叠?



