カテゴリ: VB.NET 更新日: 2026/03/20

VB.NETでログファイルを出力する方法を完全ガイド!初心者でもわかるテキスト書き込み

VB.NETでログファイルを出力する方法
VB.NETでログファイルを出力する方法

先生と生徒の会話形式で理解しよう

生徒

「プログラムが裏側で何をしているか、後から確認する方法はありますか?」

先生

「それなら、ログファイルという記録帳を作るのが一番ですよ。VB.NETでは、テキストファイルにメッセージを書き残すことができます。」

生徒

「ログファイル?日記みたいなものですか?」

先生

「その通り!いつ、どんなことが起きたかをファイルに書き溜めておけば、後でトラブルが起きたときにも原因がすぐに見つけられます。早速やり方を覚えましょう!」

1. ログファイルとは?プログラムの活動記録

1. ログファイルとは?プログラムの活動記録
1. ログファイルとは?プログラムの活動記録

プログラミング未経験の方にとって、「ログ」という言葉は少し難しく聞こえるかもしれません。ログとは、簡単に言えばプログラムの「活動日誌」です。例えば、あなたが銀行のATMを操作したとき、裏側では『〇時〇分にカードが入りました』『〇円引き出されました』といった記録が残されています。これがログファイルです。

VB.NETでログを出力するということは、メモ帳(テキストファイル)に一行ずつ言葉を書き足していく作業と同じです。パソコンを触ったことがない方でも、自分の書いた命令によってパソコンが自動的に日記を書いていく様子を見れば、プログラミングの面白さがきっと伝わるはずです。ログがあることで、プログラムが正しく動いていることを確認したり、失敗したときにどこで間違えたかを突き止めたりできるようになります。

2. ログ出力の基本!File.AppendAllTextの使い方

2. ログ出力の基本!File.AppendAllTextの使い方
2. ログ出力の基本!File.AppendAllTextの使い方

VB.NETでログを出力する最も簡単な方法は、File.AppendAllTextという命令を使うことです。「Append(アペンド)」とは「追記する」という意味です。これを使うと、もともとある文章の最後に、新しいメッセージを付け足していくことができます。上書きして前の記録を消してしまう心配がないので、ログ出力にはぴったりの道具です。

この機能を使うには、プログラムの最初に Imports System.IO というおまじないが必要です。これは、ファイルを扱うための道具箱を読み込むための指示です。まずは一番シンプルな、一行だけメッセージを保存するコードを見てみましょう。


Imports System.IO

Module Module1
    Sub Main()
        ' ログを保存する場所と名前を決めます
        Dim filePath As String = "C:\temp\app_log.txt"
        ' 書き込みたいメッセージを用意します
        Dim message As String = "プログラムを開始しました。" & vbCrLf

        ' ファイルにメッセージを追記します(ファイルがなければ自動で作られます)
        File.AppendAllText(filePath, message)

        Console.WriteLine("ログを書き込みました。")
    End Sub
End Module

3. 専門用語の解説:パス、文字列、改行コード

3. 専門用語の解説:パス、文字列、改行コード
3. 専門用語の解説:パス、文字列、改行コード

ここで、プログラムに出てきた難しい言葉について解説します。これらはファイル操作において、避けては通れない大切な用語です。

  • パス (Path):パソコン内でのファイルの住所です。どこのフォルダーのどのファイルかを指します。
  • 文字列 (String):プログラミングで扱う文字のことです。ダブルクォーテーション「" "」で囲んで表現します。
  • vbCrLf:これは「改行」を表す特別な記号です。これを入れないと、次のメッセージが横に繋がってしまい、読みにくくなってしまいます。

例えるなら、パスは「住所」、文字列は「手紙の内容」、改行コードは「次の行へ移動する動作」です。これらを組み合わせることで、人間が読みやすい綺麗なログファイルが出来上がります。特に改行を忘れると、ログがただの一長い文字列になってしまうので注意しましょう。

4. 日付と時間を一緒に記録する応用例

4. 日付と時間を一緒に記録する応用例
4. 日付と時間を一緒に記録する応用例

本物のログファイルには、必ず「いつ」その出来事が起きたかが記録されています。ただ「エラーが起きた」と書くよりも、「2026年3月10日 10時00分にエラーが起きた」と書くほうが、ずっと役に立ちますよね。VB.NETでは DateTime.Now を使うことで、今現在の時刻を簡単に取得できます。

日付とメッセージを合体させて保存する方法を見てみましょう。こうすることで、後でファイルを開いたときに、いつプログラムが動いたのかがひと目で分かるようになります。これが、実用的なログシステムの第一歩です。


Imports System.IO

Module Module2
    Sub Main()
        Dim path As String = "C:\temp\daily_record.txt"
        
        ' 現在の時刻を「年/月/日 時:分:秒」の形にします
        Dim timeStamp As String = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")
        Dim logMsg As String = "[" & timeStamp & "] 処理を実行しました。" & vbCrLf

        ' ファイルに追記
        File.AppendAllText(path, logMsg)
        
        Console.WriteLine("時刻付きログを出力しました。")
    End Sub
End Module

5. StreamWriterを使って連続で書き込む方法

5. StreamWriterを使って連続で書き込む方法
5. StreamWriterを使って連続で書き込む方法

たくさんの情報を一度に続けて書き込みたいときは、StreamWriter(ストリームライター)という道具を使うのが効率的です。先ほどの AppendAllText は一回ごとにファイルを「開いて、書いて、閉じる」という動作をしますが、StreamWriter は「一度開いたら、書き終わるまで開けっぱなしにする」ことができます。たくさんの荷物を運ぶときに、一回ずつドアを開け閉めするより、開けたまま往復するほうが早いのと同じ理由です。

この方法では、最後に Close(クローズ)という命令で、必ず「使い終わりました」と伝えてあげる必要があります。これを忘れると、他の人がファイルを使えなくなったり、せっかく書いた内容が消えてしまったりすることがあるので、片付けまでしっかり行うのがルールです。


Imports System.IO

Module Module3
    Sub Main()
        Dim fileLoc As String = "C:\temp\multi_log.txt"

        ' StreamWriterを用意します(Trueは追記モードという意味です)
        Using writer As New StreamWriter(fileLoc, True)
            writer.WriteLine("--- 処理開始 ---")
            writer.WriteLine("ステップ1完了")
            writer.WriteLine("ステップ2完了")
            writer.WriteLine("--- 処理終了 ---")
        End Using ' Usingを使うと、使い終わった後に自動で片付けてくれます

        Console.WriteLine("複数のログを効率よく書き込みました。")
    End Sub
End Module

6. ログの保存先フォルダーを自動で作る工夫

6. ログの保存先フォルダーを自動で作る工夫
6. ログの保存先フォルダーを自動で作る工夫

ログを出力しようとしたときに、もし保存先のフォルダー(住所の一部)がパソコンに存在しないと、エラーが起きてプログラムが止まってしまいます。親切なプログラムを作るには、「フォルダーがなければ自分で作る」という機能も入れておきましょう。前回のレッスンで学んだ Directory.CreateDirectory を活用します。

初心者のうちは、「エラーが起きたらどうしよう」と不安になるかもしれませんが、このように一歩先を考えて準備をしておけば、どんな環境でも元気に動く丈夫なプログラムになります。ファイル操作の基本である「存在確認」と「作成」をログ出力とセットで覚えてしまいましょう。


Imports System.IO

Module Module4
    Sub Main()
        Dim folder As String = "C:\LogData"
        Dim fileName As String = "system.log"
        Dim fullPath As String = Path.Combine(folder, fileName)

        ' フォルダーがなければ作成します
        If Not Directory.Exists(folder) Then
            Directory.CreateDirectory(folder)
        End If

        ' ログの内容を作成
        Dim content As String = DateTime.Now & ":システムが正常に起動しました。" & vbCrLf
        
        ' 追記実行
        File.AppendAllText(fullPath, content)

        Console.WriteLine("フォルダーの確認とログ出力が完了しました。")
    End Sub
End Module

7. ログ出力の注意点と管理のポイント

7. ログ出力の注意点と管理のポイント
7. ログ出力の注意点と管理のポイント

ログファイルはとても便利ですが、一つだけ注意点があります。それは、「放っておくとファイルがどんどん巨大化する」ということです。毎日プログラムを動かしていると、数ヶ月後にはログファイルが何ギガバイトという巨大なサイズになり、パソコンの容量を圧迫してしまうかもしれません。これを防ぐために、日付ごとにファイル名を分けたり(例:log_20260310.txt)、古いログを定期的に削除したりする仕組みを作るのが一般的です。

また、ログに「個人情報」や「パスワード」をそのまま書き込まないようにしましょう。誰でも見られるテキストファイルに秘密の情報を載せるのはセキュリティ上とても危険です。これらを守ることで、あなたはもう立派なプログラマーの仲間入りです。まずは自分の作ったプログラムが動くたびに「成功しました!」と一行書くだけのログから始めて、プログラムの成長を記録していきましょう!

関連記事:
カテゴリの一覧へ
新着記事
New1
VB.NET
VB.NETでログファイルを出力する方法を完全ガイド!初心者でもわかるテキスト書き込み
New2
ASP.NET
ASP.NET Coreのプロジェクト構成を完全解説!Program.csとStartup.csを初心者向けに理解しよう
New3
ASP.NET
ASP.NET MVCとは?WebFormsとの違いを初心者向けにやさしく比較解説
New4
ASP.NET
ASP.NET WebFormsとは?基本概念と仕組みを初心者向けにやさしく解説
人気記事
No.1
Java&Spring記事人気No1
VB.NET
VB.NETの配列(Array)の作り方と基本操作を徹底解説!初心者でもわかる入門ガイド
No.2
Java&Spring記事人気No2
ASP.NET
ASP.NET WebFormsとは?基本概念と仕組みを初心者向けにやさしく解説
No.3
Java&Spring記事人気No3
VB.NET
VB.NETでファイルのコピー・移動・削除を完全ガイド!初心者でもわかるファイル操作
No.4
Java&Spring記事人気No4
VB.NET
VB.NETプログラムの実行方法まとめ!Visual Studio・コマンドラインの使い方
No.5
Java&Spring記事人気No5
VB.NET
VB.NETで戻り値を返す関数の書き方を初心者向けに解説
No.6
Java&Spring記事人気No6
VB.NET
VB.NETでファイル情報を取得する完全ガイド!初心者でもわかるFileInfoの使い方
No.7
Java&Spring記事人気No7
ASP.NET
ASP.NETを安定稼働させるためのIISアプリケーションプール設定完全ガイド【初心者向け】
No.8
Java&Spring記事人気No8
VB.NET
VB.NETでの変数名の付け方とは?わかりやすくエラーの起きにくい命名規則を紹介