2014-02-07 24 views
0

運行控制檯應用程序。如果bool Usertrue,我想輸出文本到控制檯應用程序。 if bool User is false我想創建一個文件並將文本輸出到那裏。創建一個文本文件並在bool爲false時寫入它

適用於true,並創建文本文件if false,但不保存文本。

任何想法?

if (!user) 
{ 
    Console.SetOut(File.CreateText(@".\log" + DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss") + ".log")); 
    OutputHeader(); 
} 

Console.WriteLine("Arg count is " + args.Length.ToString()); 
Console.WriteLine("Show verbose output is = " + verbose.ToString()); 

回答

0

我建議你使用像NLoglog4net(二者均可從的NuGet)一些日誌框架,允許改變從配置文件中記錄輸出。例如。爲NLog您可以指定兩個目標 - 一個與日期模式名稱日誌文件,第二控制檯輸出:

<targets> 
    <target xsi:type="File" name="f" fileName="${basedir}/logs/${shortdate}.log" 
      layout="${longdate} ${uppercase:${level}} ${message}" /> 
    <target xsi:type="Console" name="c" /> 
</targets> 

然後你就可以選擇目標來使用

<logger name="*" minlevel="Trace" writeTo="f" /> 
0

嘗試使用WriteAllText代替。它簡單而輕鬆。

System.IO.File.WriteAllText(string filepath, string text); 

希望這有助於

0

在這裏你去,告訴我,如果它的作品我沒有時間尚未測試:

if (user!=true) 
{ 
System.IO.File.WriteAllText(@".\log"+ DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss")+".log", "Arg count is " + args.Length.ToString()+"\nShow verbose output is = " + verbose.ToString()); 
} 

Console.WriteLine("Arg count is " + args.Length.ToString()+"\nShow verbose output is = " + verbose.ToString()+"\n"); 
相關問題