Cドライブ直下にerrorlog20170101.txtとして作るならこんな感じ。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | /** * エラー調査用ログ出力 * @param ex catchしたエラー内容 */ static public void OutputErrLog(Exception ex) { // 書き込み設定 System.IO.StreamWriter sw = new StreamWriter( "C:\\errorlog_" + DateTime.Now.ToString( "yyyyMMdd" ) + ".txt" , // 出力先ファイル名 true , // 追加書き込み System.Text.Encoding.GetEncoding( "Shift_JIS" )); // 文字コード // ログ出力 Console.SetOut(sw); // 出力先(Outプロパティ)を設定 Console.WriteLine( "[" + DateTime.Now.ToString( "yyyy/MM/dd HH:mm:ss" ) + "] message: " + ex.Message); Console.WriteLine( "[" + DateTime.Now.ToString( "yyyy/MM/dd HH:mm:ss" ) + "] stack trace: " + ex.StackTrace); Console.WriteLine(ex.StackTrace); Console.WriteLine(); // ファイルを閉じる sw.Dispose(); } // catchの中に書いて完成! // try { // … // }catch(Exception ex) { // OutputErrLog(ex); // } |
こっちのほうが使う機会多いかも。
1 | System.IO.File.AppendAllText( "C:\\log" + DateTime.Now.ToString( "yyyyMMdd" ) + ".txt" , "[" + DateTime.Now.ToString( "yyyy/MM/dd HH:mm:ss" ) + "] message: 変数i=" + i); |