0

フレームを追加するための簡単なログファイルを作成したいと思います。
これが私がこれまでに見つけたものです。>br>ループで実行される別のクラスから呼び出されたこのクラスは、ループが終了するたびにこのcalsを呼び出し、このクラスはログ(時間内に作成されたデータ)を書き込みます。しかし、私が得たのは、txtファイルに書かれた新しい文字列が最初の文字列を置き換えるだけです。古い文字列を置き換えずに新しい行に新しい文字列を追加するにはどうすればよいですか?
私は読んだがenvironment.newline、私はそれを取得しません。

    private void logFile()
    {
        StreamWriter logfile = null;
        logfile = File.CreateText(Server.MapPath("/CCTV_Files/log.txt"));
        try
        {
            logfile.Write(String.Format("{0:yyyyMMdd_hhmmss}", DateTime.Now) + " Frame added");
        }
        catch (IOException e)
        {
            Console.WriteLine(e);
        }
        catch (Exception e)
        {
            Console.WriteLine(e);
        }
        finally
        {
            if (logfile != null)
            {
                logfile.Close();
            }
        }
     }
4

6 に答える 6

3

File.AppendText()を使用する必要があります。ここにmsdnヘルプがあります

private void logFile()
    {
        StreamWriter logfile = null;
        logfile = File.AppendText(Server.MapPath("/CCTV_Files/log.txt"));
        try
        {
            logfile.Write(String.Format("{0:yyyyMMdd_hhmmss}", DateTime.Now) + " Frame added");
        }
        catch (IOException e)
        {
            Console.WriteLine(e);
        }
        catch (Exception e)
        {
            Console.WriteLine(e);
        }
        finally
        {
            if (logfile != null)
            {
                logfile.Close();
            }
        }
     }
于 2012-11-06T05:33:11.960 に答える
2

File.AppendTextを使用します:

logfile = File.AppendText(Server.MapPath("/CCTV_Files/log.txt"));

File.CreateTextの代わりに:

logfile = File.CreateText(Server.MapPath("/CCTV_Files/log.txt"));
于 2012-11-06T05:33:10.347 に答える
2

このメソッドは、appendパラメーターがfalseに設定されたStreamWriter(String、Boolean)コンストラクターのオーバーロードと同等です。パスで指定されたファイルが存在しない場合は作成されます。ファイルが存在する場合、その内容は上書きされます。

オプション1:追加をTrueとしてStreamWriterを使用できます。

public StreamWriter(文字列パス、bool append)

StreamWriter sw = new StreamWriter(fileName、true)

オプション2: File.AppendTextの使用を選択することもできます。

参照:

http://msdn.microsoft.com/en-us/library/system.io.file.createtext.aspx

http://msdn.microsoft.com/en-us/library/36b035cb.aspx

http://msdn.microsoft.com/en-us/library/system.io.file.appendtext.aspx

于 2012-11-06T05:33:29.410 に答える
1

これを試して。

   string path = your file path;
   using(StreamWriter sw = new StreamWriter(path,true))
           {

                    sw.WriteLine("string here");
           }
于 2012-11-06T05:33:09.187 に答える
0

あなたはappendmodでログファイルを開くことができます。

http://msdn.microsoft.com/en-us/library/3zc0w663.aspx

これは便利です

http://roque-patrick.com/windows/final/bbl0190.html

于 2012-11-06T05:32:02.153 に答える
0

なぜファイルを開いて管理するのに悩むのですか?log4netライブラリを使用する: log4net

それは素晴らしいです、ほんの数行の構成、そしてあなたは情報と詳細でいっぱいのログファイルを持つ準備ができています。

private static readonly ILog log = LogManager.GetLogger(typeof(Foo));

///In your method:
log.Info("Information");
log.Error("Error happened");
log.Debug("bla bla");
///etc.

ログファイルのサンプルは次のとおりです。

176 [main] INFO  examples.Sort - Populating an array of 2 elements in reverse order.
225 [main] INFO  examples.SortAlgo - Entered the sort method.
262 [main] DEBUG SortAlgo.OUTER i=1 - Outer loop.
276 [main] DEBUG SortAlgo.SWAP i=1 j=0 - Swapping intArray[0] = 1 and intArray[1] = 0
290 [main] DEBUG SortAlgo.OUTER i=0 - Outer loop.
304 [main] INFO  SortAlgo.DUMP - Dump of integer array:
317 [main] INFO  SortAlgo.DUMP - Element [0] = 0
331 [main] INFO  SortAlgo.DUMP - Element [1] = 1
343 [main] INFO  examples.Sort - The next log statement should be an error message.
346 [main] ERROR SortAlgo.DUMP - Tried to dump an uninitialized array.
467 [main] INFO  examples.Sort - Exiting main method.

独自の方法を使用する場合は、次のコードを使用してください。

logfile = File.AppendText(Server.MapPath("/CCTV_Files/log.txt"));

于 2012-11-06T05:40:03.103 に答える