VB.NETでログファイルを出力する方法を完全ガイド!初心者でもわかるテキスト書き込み
生徒
「プログラムが裏側で何をしているか、後から確認する方法はありますか?」
先生
「それなら、ログファイルという記録帳を作るのが一番ですよ。VB.NETでは、テキストファイルにメッセージを書き残すことができます。」
生徒
「ログファイル?日記みたいなものですか?」
先生
「その通り!いつ、どんなことが起きたかをファイルに書き溜めておけば、後でトラブルが起きたときにも原因がすぐに見つけられます。早速やり方を覚えましょう!」
1. ログファイルとは?プログラムの活動記録
プログラミング未経験の方にとって、「ログ」という言葉は少し難しく聞こえるかもしれません。ログとは、簡単に言えばプログラムの「活動日誌」です。例えば、あなたが銀行のATMを操作したとき、裏側では『〇時〇分にカードが入りました』『〇円引き出されました』といった記録が残されています。これがログファイルです。
VB.NETでログを出力するということは、メモ帳(テキストファイル)に一行ずつ言葉を書き足していく作業と同じです。パソコンを触ったことがない方でも、自分の書いた命令によってパソコンが自動的に日記を書いていく様子を見れば、プログラミングの面白さがきっと伝わるはずです。ログがあることで、プログラムが正しく動いていることを確認したり、失敗したときにどこで間違えたかを突き止めたりできるようになります。
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. 専門用語の解説:パス、文字列、改行コード
ここで、プログラムに出てきた難しい言葉について解説します。これらはファイル操作において、避けては通れない大切な用語です。
- パス (Path):パソコン内でのファイルの住所です。どこのフォルダーのどのファイルかを指します。
- 文字列 (String):プログラミングで扱う文字のことです。ダブルクォーテーション「" "」で囲んで表現します。
- vbCrLf:これは「改行」を表す特別な記号です。これを入れないと、次のメッセージが横に繋がってしまい、読みにくくなってしまいます。
例えるなら、パスは「住所」、文字列は「手紙の内容」、改行コードは「次の行へ移動する動作」です。これらを組み合わせることで、人間が読みやすい綺麗なログファイルが出来上がります。特に改行を忘れると、ログがただの一長い文字列になってしまうので注意しましょう。
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を使って連続で書き込む方法
たくさんの情報を一度に続けて書き込みたいときは、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. ログの保存先フォルダーを自動で作る工夫
ログを出力しようとしたときに、もし保存先のフォルダー(住所の一部)がパソコンに存在しないと、エラーが起きてプログラムが止まってしまいます。親切なプログラムを作るには、「フォルダーがなければ自分で作る」という機能も入れておきましょう。前回のレッスンで学んだ 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. ログ出力の注意点と管理のポイント
ログファイルはとても便利ですが、一つだけ注意点があります。それは、「放っておくとファイルがどんどん巨大化する」ということです。毎日プログラムを動かしていると、数ヶ月後にはログファイルが何ギガバイトという巨大なサイズになり、パソコンの容量を圧迫してしまうかもしれません。これを防ぐために、日付ごとにファイル名を分けたり(例:log_20260310.txt)、古いログを定期的に削除したりする仕組みを作るのが一般的です。
また、ログに「個人情報」や「パスワード」をそのまま書き込まないようにしましょう。誰でも見られるテキストファイルに秘密の情報を載せるのはセキュリティ上とても危険です。これらを守ることで、あなたはもう立派なプログラマーの仲間入りです。まずは自分の作ったプログラムが動くたびに「成功しました!」と一行書くだけのログから始めて、プログラムの成長を記録していきましょう!