///
/// 文本记录
///
/// 文本信息
/// 1错误日志 2运行日志
public static void LogText(string msg,int type)
{
lock (obj)
{
System.Text.StringBuilder str = new System.Text.StringBuilder();
str.Append(DateTime.Now.ToString() + ":");
str.Append(msg);
str.Append("\n");
if (!Directory.Exists(AppDomain.CurrentDomain.BaseDirectory + "Log"))
Directory.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory + "Log");
string FilePath;
if (type == 1)
FilePath = AppDomain.CurrentDomain.BaseDirectory + "Log\\err_" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
else if(type==2)
FilePath = AppDomain.CurrentDomain.BaseDirectory + "Log\\run_" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
else
FilePath = AppDomain.CurrentDomain.BaseDirectory + "Log\\cf_" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
System.IO.StreamWriter sw = null;
try
{
if (!System.IO.File.Exists(FilePath))
{
System.IO.FileStream fs = System.IO.File.Create(FilePath);
fs.Close();
}
sw = new System.IO.StreamWriter(FilePath, true, System.Text.Encoding.Default);
sw.Write(str.ToString());
}
catch (Exception ex)
{
}
finally
{
if (sw != null)
sw.Close();
}
}
}
一个写日志的方法。软件运行久了就会在“sw =newSystem.IO.StreamWriter(FilePath,true, System.Text.Encoding.Default);”这句报System.StackOverflowException的异常。
System.StackOverflowException往往是出现无限制的递归导致的,函数调用层次过多导致栈溢出。而该代码应该没有递归之类的。
请达人帮忙分析一下,该代码问题所在