2025/09/24

共通部品にチャレンジ:#5)LotusScript 実行ログ - ログの出力(Print* 関数)

#3 から開始したライブラリ作成作業の続きです。今回はログを出力する関数 3 つを紹介します。


◇ 通常ログの出力(PrintLog 関数)

最初は通常のログを出力する PrintLog 関数です。xPrintLog 関数でログの出力を行っているのですが、この関数の役割は、エラーチェックと出力した通常ログのカウンタのインクリメントとなっています。

Public Function PrintLog(ByVal vsLogText As String) As Boolean
   If xbIsInit = False Then Exit Function
   If xbIsOpen = False Then Exit Function

   '通常ログとして、引数の文字列を出力
   If xPrintLog(False, vsLogText) Then
      PrintLog = True

      'カウンタインクリメント
      xlMessage = xlMessage + 1
    End If
End Function


◇ エラーログの出力(PrintError 関数)

通常ログと違い、エラーログの出力は、エラーメッセージを記録するフィールド LogError にエラーメッセージを記録して、エラーフラグ IsError に "1" をセットしています。

Public Function PrintError(ByVal vsErrorMessage As String) As Boolean
   If xbIsInit = False Then Exit Function
   If xbIsOpen = False Then Exit Function

   'エラーログとして、引数の文字列を出力
   If xPrintLog(True, vsErrorMessage) Then
      'エラーメッセージを記録
      xndLog.LogError = vsErrorMessage
      'エラーフラグを記録
      xndLog.IsError = "1"

      PrintError = True

      'カウンタインクリメント
      xlError = xlError + 1
   End If
End Function


◇ サマリーの出力(PrintSummary)

「8 件の文書を処理しました。」というような処理結果を出力する機能がサマリーです。エラーと同様に専用のフィールド LogSummary にメッセージを記録します。それ以外の処理は通常ログと同じです。

Public Function PrintSummary(ByVal vsLogSummary As String) As Boolean
   If xbIsInit = False Then Exit Function
   If xbIsOpen = False Then Exit Function

   '通常ログとして、引数の文字列を出力
   If xPrintLog(False, vsLogSummary) Then
      'サマリを記録
      xndLog.LogSummary = vsLogSummary

      vsLogSummary = True

      'カウンタインクリメント
      xlMessage = xlMessage + 1
   End If
End Function


◇ ログ出力の本体

この関数がログメッセージを出力する本体で、上記 3 つの関数からコールされています。引数 vbIsError が True の場合はエラー、False の場合は通常ログを表します。

Private Function xPrintLog(ByVal vbIsError As Boolean, ByVal vsMessage As String) As Boolean
   '通常ログのスタイル適用
   Call xnrti.AppendParagraphStyle(xnrtpsMsg)

   '日時
   Call xnrti.AppendStyle(xnrtsDT)
   Call xnrti.AppendText(Format(Now, "yyyy/mm/dd hh:nn:ss"))

   'ログ(メッセージ)
   If vbIsError Then
      '通常ログ
      Call xnrti.AppendStyle(xnrtsErr)
   Else
      'エラーログ
      Call xnrti.AppendStyle(xnrtsMsg)
   End If
   Call xnrti.AddTab(1)    '日付とログの間
   Call xnrti.AppendText(vsMessage)

   xPrintLog = True
End Function

処理の流れは、段落スタイルをセットして、日付とログメッセージを出力しています。文字色を変えるため出力前に AppendStyle であらかじめ定義したフォントを指定しています。メッセージの出力ではエラーかどうかに応じてフォントを切り替えています。


前回 共通部品にチャレンジ


0 件のコメント:

コメントを投稿