以前、実行ログの出力関数を作成する方法をご紹介しました。
今回は、それを部品化して、別のVBScriptで実行する方法を解説したいと思います。
はじめに・仕様
本記事では、VBScriptにおけるログを出力する部品と、その使い方を説明します。
仕様については、以下となります。
- ログの出力先パスとファイル名は、呼び出し元で定義する
- ログのヘッダーとして、[YYYY/MM/DD hh:mm:ss][ログレベル]を設定する
- ログのファイル名が、「指定したファイル名_YYYYMMDD.拡張子」となる
ソースコード
ここでは、ログ出力部品と呼び出し側のサンプルソースコードを見ていきたいと思います。
main.vbs(呼び出し側)
Option Explicit ' ログの出力先 Const LOG_PATH = "C:\workspace\VBScript" ' ログのファイル名 Const LOG_NAME = "main.log" ' ファイルシステムオブジェクトの作成 Dim fso Set fso = CreateObject("Scripting.FileSystemObject") ' 関数の読み込み Execute fso.OpenTextFile("function.vbs").ReadAll() ' ファイルシステムオブジェクトの破棄 Set fso = Nothing ' ログ出力部品の呼び出し Call WriteLog("出力するメッセージ1", LOG_INFO) Call WriteLog("出力するメッセージ2", LOG_ERROR) Call WriteLog("出力するメッセージ3", LOG_INFO)
function.vbs(呼び出される側)
Option Explicit ' ログレベル(INFO) Const LOG_INFO = "INFO" ' ログレベル(ERROR) Const LOG_ERROR = "ERROR" ' ログ出力 Function WriteLog(Byval msg, Byval level) Dim strDate, strTime, header strDate = Date() strTime = Time() ' 定数定義チェック If(LOG_PATH = "" Or LOG_NAME = "")Then WScript.Echo("ログ出力関数向け定数が定義されていません。") WScript.Quit End If ' ファイルシステムオブジェクトの作成 Dim fso Set fso = CreateObject("Scripting.FileSystemObject") ' テキストファイルのオープン(追記モード) Dim logFile Set logFile = fso.OpenTextFile(LOG_PATH & "\" & Replace(LOG_NAME , ".", "_" & Replace(strDate, "/", "") & "."), 8, True) ' ヘッダーの作成 header = "[" & strDate & " " & strTime & "][" & level & "]" ' ログの書き込み logFile.WriteLine(header & msg) ' ログのクローズ logFile.Close ' ファイルシステムオブジェクトの破棄 Set fso = Nothing End Function
実行例
サンプルを実行した際の、使用イメージについて説明します。
前項で説明しているサンプルのソースコードを実行すると、以下のようなログが出力されます。
・ログファイル名:main_20230319.log
ログに出力された内容:
[2023/03/19 3:25:48][INFO]出力するメッセージ1 [2023/03/19 3:25:48][ERROR]出力するメッセージ2 [2023/03/19 3:25:48][INFO]出力するメッセージ3
実装時に使用した機能について
この部品を作成するにあたり、使用した機能をまとめてみました。
【VBScript】簡単に使える!実行ログ出力関数
コピペですぐに使えるログ出力関数を作成してみたので、公開したいと思います。
【VBScript】共通関数モジュールの作り方・部品化
以前、別のVBScriptファイルを呼び出す方法をご紹介しましたが、今回は、共通的に使用出来る関数を部品化して、その部品に記述された関数を呼び出す方法をご紹介したいと思います。
【VBScript】テキストファイルの出力
VBScriptでは「FileSystemObject」を使用することで様々なファイル操作を行えます。ここでは、ファイルのオープン(OpenTextFile)とファイルの書き込み(WriteLine)を解説します。
【VBScript】現在日付の取得
VBScriptで現在日付(本日の日付)を取得する方法を解説しています。「Date()」関数を呼び出すことで、現在日時を取得することが可能です。
【VBScript】現在日時する[Now]関数の使い方
VBScriptで現在日時を取得する[Now]関数の使い方を解説しています。
【VBScript】定数の宣言と用意された定数の一覧
VBScriptにて、定数を宣言する方法について解説しています。
また、事前に用意された定数の一覧も合わせて記載しています。
リンク
コメント