【VBScript】簡単に使える!実行ログ出力関数


この記事はプロモーションを含みます。

VBScript

ホーム > VBScript 逆引きリファレンス

コピペですぐに使えるログ出力関数を作成してみたので、公開したいと思います。

はじめに

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]ログの出力終了

以下にお問い合わせフォームを設けていますので、
ログの出力形式を変えたい!やこんな機能を追加出来ないの?などあればお気軽にお問い合わせください。

実装時に使用した機能について

今回のログ出力関数で使用した機能について解説している記事になります。

コメント

タイトルとURLをコピーしました