IT関連

処理結果をログに出力【PowerShell】

おはようございます。こんにちは。こんばんは。
ミッド(@mid_v_lab)です

今日は効率化のPowerShellスクリプトを1つ紹介します。

簡単ですが、メッセージを変数に格納してログ出力するコードを紹介します。

コードはこれだ!!

ログ出力.ps1

#ログ変数の規定
$log = @()

#メッセージ格納
$log += “test1”
$log += “test2”

Write-Output $log | Out-File “.\log.txt”

exit

超簡単な仕組みとなっております。

「$log」を「@()」で配列指定して、「+=」でメッセージを追加していきます。

このコードを実行すると、スクリプトと同じフォルダに「log.txt」というログファイルが出力されます。

こんな感じ。

でもこれじゃあ味気ないので、ログファイルおよびメッセージに日付と時間を付けてみましょう。

コードはこれだ!!

ログ出力2.ps1

#ログ変数の規定
$log = @()

#時間
$Today = Get-Date -Uformat %Y%m%d

#ログファイルの設定
$logfile = “.\” + $Today + “_log.txt”

#メッセージ格納
$log += $(Get-Date -Uformat %Y%m%d_%H:%M:%S) + ” test1″
$log += $(Get-Date -Uformat %Y%m%d_%H:%M:%S) + ” test2″

Write-Output $log | Out-File $logfile

exit

「$Today」に本日日付を入力しておきます。これを利用してログファイル名を規定。

各メッセージの前に「$(Get-Date -Uformat %Y%m%d_%H:%M:%S)」を入れて、日付+時間を入れてます。

これを実行すると、先ほどの「log.txt」の前に日付が付いたファイル名になり、ログファイルの中身も、日付+時刻となっているので、どれくらいの時間で処理が終わったのか分かります。

例えば、ログ出力のメッセージ以外にも、もう一つメッセージを格納する変数作っておいて、エラー時にその変数に文字を入れて、

その変数の文字入力があるかないかで、件名を変えたりすることもできます。

正常時件名:処理完了

異常時件名:処理異常終了

色々カスタマイズしてみてください。


 

ではでは

にほんブログ村 サラリーマン日記ブログ IT系サラリーマンへ
PVアクセスランキング にほんブログ村