【发布时间】:2014-04-27 14:33:53
【问题描述】:
我正在尝试用 c# 编写一个 Logfile Writer 类。我想做以下事情:我将日志写入第一个日志文件,如果超过一定大小,它将写入第二个日志文件。如果第二个日志文件已满,则删除第一个日志文件并再次写入该日志文件,依此类推。
到目前为止我已经得到了这个:
public class LogfileBuilder
{
StreamWriter sW;
const string file1 = "EventLogging1.txt";
const string file2 = "EventLogging2.txt";
FileInfo fInfo;
public void writeLine(string write)
{
string usingFile;
fInfo = new FileInfo(file1);
long s1 = fInfo.Length;
if (s1 > 300)
{
fInfo = new FileInfo(file2);
long s2 = fInfo.Length;
if (s2 > 300)
{
File.Create(file1).Close();
usingFile = file1;
}
else
{
usingFile = file2;
}
}
else usingFile = file1;
using (sW = File.AppendText(usingFile))
{
sW.WriteLine(write);
}
}
}
谁能帮我完成?
【问题讨论】:
-
你有没有考虑过使用 log4net 已经内置了这种功能?
-
到底是什么问题?
-
问题是,如果我检查第一个是否已满而第二个是否已满,它将删除第一个文件。但是如果第二个文件已满而第一个文件较新怎么办 --> 它仍然会删除第一个文件
-
只需遍历日志文件并使用长度小于限制的第一个。
标签: c# streamwriter logfiles