|
分類:[.NET 全般]
環境:VB2019、.Net4.7.2、Windowsフォームアプリケーション
ApplicationEvents.vb内でUnhandledExceptionイベントを以下のように実装しました。
イベント内でログをメモ帳で開いて、編集後、上書き保存しようとすると
「プロセスはファイルにアクセスできません。別のプロセスが使用中です。」
とメモ帳に怒られ、上書き保存できません。どうすれば、上書き保存できるでしょうか?
個人で使うアプリなので、自アプリから、お手軽に「ログの閲覧と定期的な削除」を行う事が目的です。
Partial Friend Class MyApplication
Private Sub MyApplication_UnhandledException(sender As Object, e As UnhandledExceptionEventArgs) Handles Me.UnhandledException
'アプリを終了しない
e.ExitApplication = False
Dim msg = $"■{DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")}{vbTab}{e.Exception.Message}"
My.Application.Log.WriteException(e.Exception, TraceEventType.Error, msg)
My.Application.Log.DefaultFileLogWriter.Flush()
If MsgBox("想定外の例外が発生しました。ログを開きますか?", MsgBoxStyle.OkCancel) = MsgBoxResult.Ok Then
' メモ帳でログファイルを開く
Dim path = My.Application.Log.DefaultFileLogWriter.FullLogFileName
Process.Start("notepad.exe", path)
End If
End Sub
End Class
|