C#将指定的数据追加写入到本地指定目录下的以当天日期命名的log文件里,若该log文件不存在,则新建,同时需要删除该目录下创建超过100天的log文件
时间: 2024-09-09 12:15:42 浏览: 46
C#实现将日志写入文本文件的方法
在C#中,你可以使用`System.IO`和`DateTime`类来完成这个任务。首先,你需要确定当前日期并将其用于生成日志文件名。然后,你可以使用`StreamWriter`来追加数据到文件,如果文件不存在则会自动创建。最后,为了管理旧的日志文件,可以使用`Directory.GetFiles`配合`File.Delete`来查找并删除超过100天的文件。这是一个简单的示例:
```csharp
using System;
using System.IO;
public static void AppendToLog(string data, string directoryPath)
{
// 获取当前日期
DateTime currentDate = DateTime.Today;
// 日志文件名格式化为 yyyy-MM-dd.log
string logFileName = $"{currentDate.ToString("yyyy-MM-dd")}.log";
// 指定完整的日志文件路径
string filePath = Path.Combine(directoryPath, logFileName);
try
{
// 检查文件是否存在,如果不存在则创建
if (!File.Exists(filePath))
{
using (StreamWriter writer = File.CreateText(filePath))
{
writer.WriteLine(data); // 写入数据
}
}
else
{
using (StreamWriter writer = File.AppendText(filePath))
{
writer.WriteLine(data); // 追加数据
}
}
// 清理过期日志
DateTime threshold = currentDate.AddDays(-100);
foreach (string oldLogFile in Directory.GetFiles(directoryPath, "*.log", SearchOption.TopDirectoryOnly))
{
DateTime fileDate = File.GetCreationTime(oldLogFile);
if (fileDate < threshold)
{
File.Delete(oldLogFile);
}
}
}
catch (Exception ex)
{
Console.WriteLine($"Error occurred: {ex.Message}");
}
}
```
阅读全文