1.采用打开创建的方式,同名写入,不同名创建 ,最近接手一个项目,一些好用的日志组件领导不也不用,自己写呗
void WriteLogFile(string Content)
{
string strFoloder = AppDomain.CurrentDomain.BaseDirectory + "\\applogs";
if (!Directory.Exists(strFoloder))
{
Directory.CreateDirectory(strFoloder);
}
string strFileName = DateTime.Now.ToString("yyyyMMdd") + ".txt";
FileStream fs = new FileStream(strFoloder + "\\" + strFileName, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
StreamWriter m_streamWriter = new StreamWriter(fs);
m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);
m_streamWriter.WriteLine(Content);
m_streamWriter.Flush();
m_streamWriter.Close();
fs.Close();
}
代用线程的处理方法
void WriteLogFile(string Content)
{
Task.Run(() =>
{
string strFoloder = AppDomain.CurrentDomain.BaseDirectory + "\\applogs";
if (!Directory.Exists(strFoloder))
{
Directory.CreateDirectory(strFoloder);
}
string strFileName = DateTime.Now.ToString("yyyyMMdd") + ".txt";
FileStream fs = new FileStream(strFoloder + "\\" + strFileName, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
StreamWriter m_streamWriter = new StreamWriter(fs);
m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);
m_streamWriter.WriteLine(Content);
m_streamWriter.Flush();
m_streamWriter.Close();
fs.Close();
});
}
Task WriteLogFile2(string Content)
{
var task = Task.Run(() =>
{
string strFoloder = AppDomain.CurrentDomain.BaseDirectory + "\\applogs";
if (!Directory.Exists(strFoloder))
{
Directory.CreateDirectory(strFoloder);
}
string strFileName = DateTime.Now.ToString("yyyyMMdd") + ".txt";
FileStream fs = new FileStream(strFoloder + "\\" + strFileName, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
StreamWriter m_streamWriter = new StreamWriter(fs);
m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);
m_streamWriter.WriteLine(Content);
m_streamWriter.Flush();
m_streamWriter.Close();
fs.Close();
});
return task;
}
private void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < 10; i++)
{
var task = WriteLogFile2(i.ToString() + "\n");
task.Wait();
}
}