방법: 열기 및 로그 파일에 추가How to: Open and append to a log file

StreamWriterStreamReader는 스트림에서 문자를 쓰고 문자를 읽습니다.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.

이 예제의 대안으로, 정보를 단일 문자열 또는 문자열 배열로 저장하고, 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