Imports System
Imports System.IO
Imports System.Text
' 簡単なログ・クラス
Public Class MyLogger
Dim log As New StringBuilder()
' ログの追加
Public Sub Add(ByVal line As String)
log.AppendLine(line)
End Sub
' ログの保存(ログ・ファイルの名前は「yyyymmdd.txt」の形式)
Public Sub Save()
Dim file As String = DateTime.Now.ToString("yyyyMMdd") + ".txt"
Dim enc As Encoding = Encoding.GetEncoding("Shift_JIS")
' 追加書き込み(文字コードはShift-JISを使用)
Using sw As New StreamWriter(file, True, enc)
sw.Write(log.ToString())
End Using
End Sub
End Class
Class MyProgram
Dim logger As New MyLogger()
Sub New()
' CancelKeyPressイベント・ハンドラの追加
AddHandler Console.CancelKeyPress, AddressOf Ctrl_C_Pressed
End Sub
Sub Run()
While True
Dim line As String = DateTime.Now + " 出力"
Console.WriteLine(line)
logger.Add(line) ' ログの追加
System.Threading.Thread.Sleep(2000) ' 2秒間待つ
End While
End Sub
' [Ctrl]+[C]キーが押されたときに呼び出される
Sub Ctrl_C_Pressed(ByVal sender As Object, ByVal e As ConsoleCancelEventArgs)
logger.Save() ' ログの保存
End Sub
Shared Sub Main()
Dim p As New MyProgram()
p.Run()
End Sub
End Class