メインコンテンツへスキップ
  1. Blogs/

Bashで簡易的なlogging

·292 文字·
Blog ShellScript
hiroki
著者
hiroki
クラウドを作るお仕事をしてます。
目次

はじめに
#

echoロギングでは、ログに必要な「時間、どのコードで、どの行か?」が全く分からない。 さすがに困るけどshellだから最低限の労力でロギングできるようにしたいので、これを満たせるレベルlogging関数を用意する。

infoとerrorのlogging関数
#

  • info <msg> : echoの代わりに使用。日付とscriptの場所を出力してくれる。
  • error <msg>: infoと同じくlogを出力 + exit 1でscript自体を停止
#!/bin/bash

error() {
  local fname=${BASH_SOURCE[1]##*/}
  echo -e "$(date '+%Y-%m-%dT%H:%M:%S')[ERROR] (${fname}:${BASH_LINENO[0]}:${FUNCNAME[1]}) $@" 1>&2
  exit 1
}

info() {
  local fname=${BASH_SOURCE[1]##*/}
  echo -e "$(date '+%Y-%m-%dT%H:%M:%S')[INFO] (${fname}:${BASH_LINENO[0]}:${FUNCNAME[1]}) $@"
}

info "info-dayo"
# >> 2023-06-23T05:52:00[INFO] (sample.sh:14:main) info-dayo

error "error-dayo"
# >> 2023-06-23T05:52:00[ERROR] (sample.sh:16:main) error-dayo
shでは使用できないので注意

おわりに
#

通常のcodeの上に2個関数をコピペするだけで大分使いやすくなる。

Related

pyvmomiで自動化6 -便利なツール群-
·1898 文字
Blog VMware VSphere Pyvmomi Python
pyvmomiで自動化4 -VMに命令実行-
·1587 文字
Blog VMware VSphere Pyvmomi Python
pyvmomiで自動化3 -ESXiに命令実行-
·2981 文字
Blog VMware VSphere Pyvmomi Python