0
我有一個錯誤,無法寫入到一個封閉的TextWriter
「不能寫入到一個封閉的TextWriter。」
代碼:
public class Logs
{
static string File_Path= "";
static public FileStream fs;
static public StreamWriter sw;
public static void Initialize(string path)
{
File_Path = path;
fs = new FileStream(File_Path, FileMode.Append, FileAccess.Write);
sw = new StreamWriter(fs);
}
public static void info_log(string msg)
{
sw.WriteLine("{0} [INFO] : {1}",DateTime.Now.ToString(),msg);
sw.WriteLine(" ");
sw.Close();
sw.Flush();
}
public static void error_log(Exception ex)
{
sw.WriteLine("{0} [ERROR] : {1}", DateTime.Now.ToString(), ex.Message);
sw.WriteLine("StackTrace : {0}:", ex.StackTrace);
sw.WriteLine(" ");
sw.Close();
sw.Flush();
}
public static void warning_log(string msg)
{
sw.WriteLine("{0} [WARNING] : {1}", DateTime.Now.ToString(), msg);
sw.WriteLine(" ");
sw.Close();
sw.Flush();
}
}
你能給我們一個你調用這些方法的順序的例子嗎?因爲如果您在每次調用info_log,error_log或warning_log之前都未調用Initialize,則實際上您嘗試使用CLOSED StreamWriter進行編寫。您需要在任何WriteLine操作之前打開StreamWriter。 – 2012-08-14 10:51:31
如果沒有調用初始化,那麼'sw'將是'null',導致NPE。 – afk5min 2012-08-15 05:59:13