コピペですぐに使えるログ出力関数を作成してみたので、公開したいと思います。
はじめに
VBScriptで、処理の実行ログを出力する関数を作成しました。
本関数では、以下の機能が実装されています。
- ログファイル名は「任意の文字列_YYYYMMDD」
- ログファイルが存在する場合は追記する
- ログのヘッダーとして、ログレベルとタイムスタンプを付与
ソースコード
ソースコードになります。基本的にはコピペで、ログのファイル名や出力先はお好みに合わせて設定して下さい。
Option Explicit
' ログの出力先
Const LOG_PATH = "C:\ws"
' ログのファイル名
Const LOG_NAME = "VBScript.log"
' ログレベル(INFO)
Const LOG_INFO = "INFO"
' ログレベル(ERROR)
Const LOG_ERROR = "ERROR"
Call WriteLog("ログの出力開始", LOG_INFO)
Call WriteLog("VBScript", LOG_INFO)
Call WriteLog("ログの出力終了", LOG_INFO)
' 処理終了
WScript.Quit
' ログ出力関数
Function WriteLog(Byval msg, Byval level)
Dim strDate, strTime, header
strDate = Date()
strTime = Time()
' ファイルシステムオブジェクトの作成
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
こちらを実行すると、以下にログが出力されます。
- フォルダ名:C:\ws
- ファイル名:VBScript_20221122.log
こちらは出力されるログのサンプルです。
今回は、ログレベルをログのヘッダーとして出力しているだけですが、
ログレベルによって、処理を振り分けてもいいかもしれません。
[2022/11/22 2:44:24][INFO]ログの出力開始 [2022/11/22 2:44:24][INFO]VBScript [2022/11/22 2:44:24][INFO]ログの出力終了
以下にお問い合わせフォームを設けていますので、
ログの出力形式を変えたい!やこんな機能を追加出来ないの?などあればお気軽にお問い合わせください。
実装時に使用した機能について
今回のログ出力関数で使用した機能について解説している記事になります。
【VBScript】定数の宣言と用意された定数の一覧
VBScriptにて、定数を宣言する方法について解説しています。
また、事前に用意された定数の一覧も合わせて記載しています。
【VBScript】テキストファイルの出力
VBScriptでは「FileSystemObject」を使用することで様々なファイル操作を行えます。ここでは、ファイルのオープン(OpenTextFile)とファイルの書き込み(WriteLine)を解説します。
【VBScript】現在日付の取得
VBScriptで現在日付(本日の日付)を取得する方法を解説しています。「Date()」関数を呼び出すことで、現在日時を取得することが可能です。
【VBScript】現在時刻の取得
VBScriptで現在時刻を取得する方法を解説しています。「Time()」関数を呼び出すことで、現在時刻を取得することが可能です。
【VBScript】文字列の置換(置き換え) – Replace()
VBScriptで文字列から、指定した文字列を置換する方法について解説しています。
リンク
コメント