方法: ログ ファイルを開いて情報を追加するHow to: Open and append to a log file

StreamWriter および StreamReader は、ストリームから文字の書き込んだり、読み取りを行います。StreamWriter and StreamReader write characters to and read characters from streams. 次のコード例は、入力用に log.txt ファイルを開くか、まだファイルがない場合、ファイルを作成し、ファイルの末尾に情報を追加します。The following code example opens the log.txt file for input, or creates it if it doesn't exist, and appends log information to the end of the file. 次に、ファイルの内容が表示用に標準出力に書き込まれます。The example then writes the contents of the file to standard output for display.

この例の代わりとして、情報を 1 つの文字列または文字列配列として格納し、File.WriteAllText または File.WriteAllLines メソッドを使用して同じ機能を実現できます。As an alternative to this example, you could store the information as a single string or string array, and use the File.WriteAllText or File.WriteAllLines method to achieve the same functionality.

注意

Visual Basic を使用するユーザーは、ログ ファイルの作成またはログ ファイルへの書き込みのために、Log クラスまたは FileSystem クラスによって提供されるメソッドまたはプロパティを使用することを選択できます。Visual Basic users may choose to use the methods and properties provided by the Log class or FileSystem class for creating or writing to log files.

Example

using System;
using System.IO;

class DirAppend
{
    public static void Main()
    {
        using (StreamWriter w = File.AppendText("log.txt"))
        {
            Log("Test1", w);
            Log("Test2", w);
        }
        
        using (StreamReader r = File.OpenText("log.txt"))
        {
            DumpLog(r);
        }
    }

    public static void Log(string logMessage, TextWriter w)
    {
        w.Write("\r\nLog Entry : ");
        w.WriteLine($"{DateTime.Now.ToLongTimeString()} {DateTime.Now.ToLongDateString()}");
        w.WriteLine("  :");
        w.WriteLine($"  :{logMessage}");
        w.WriteLine ("-------------------------------");
    }

    public static void DumpLog(StreamReader r)
    {
        string line;
        while ((line = r.ReadLine()) != null)
        {
            Console.WriteLine(line);
        }
    }
}
// The example creates a file named "log.txt" and writes the following lines to it,
// or appends them to the existing "log.txt" file:

// Log Entry : <current long time string> <current long date string>
//  :
//  :Test1
// -------------------------------

// Log Entry : <current long time string> <current long date string>
//  :
//  :Test2
// -------------------------------

// It then writes the contents of "log.txt" to the console.
Imports System.IO

Class DirAppend
    Public Shared Sub Main()
        Using w As StreamWriter = File.AppendText("log.txt")
            Log("Test1", w)
            Log("Test2", w)
        End Using

        Using r As StreamReader = File.OpenText("log.txt")
            DumpLog(r)
        End Using
    End Sub

    Public Shared Sub Log(logMessage As String, w As TextWriter)
        w.Write(vbCrLf + "Log Entry : ")
        w.WriteLine($"{DateTime.Now.ToLongTimeString()} {DateTime.Now.ToLongDateString()}")
        w.WriteLine("  :")
        w.WriteLine($"  :{logMessage}")
        w.WriteLine ("-------------------------------")
    End Sub

    Public Shared Sub DumpLog(r As StreamReader)
        Dim line As String
        line = r.ReadLine()
        While Not (line Is Nothing)
            Console.WriteLine(line)
            line = r.ReadLine()
        End While
    End Sub
End Class

' The example creates a file named "log.txt" and writes the following lines to it,
' or appends them to the existing "log.txt" file:

' Log Entry : <current long time string> <current long date string>
'  :
'  :Test1
' -------------------------------

' Log Entry : <current long time string> <current long date string>
'  :
'  :Test2
' -------------------------------

' It then writes the contents of "log.txt" to the console.

関連項目See also