BioErrorLog Tech Blog

試行錯誤の記録

TerraformでDEBUGレベルのログを出力する

Terraformで出力ログレベルを変更するやり方の備忘録です。

はじめに

こんにちは、@bioerrorlogです。

不具合の切り分けをする際、ログは重要な情報源です。

そして十分な情報がログから得られない場合は、ログの出力レベルを上げてログ出力量を増やすのも有効です。

今回は、Terraformでログの出力レベルを変更する方法を備忘にまとめます。

TerraformでDEBUGレベルのログを出力する

Terraformでログの出力レベルを変更するには、環境変数TF_LOGを設定します。

ドキュメントはこちら: Debugging | Terraform by HashiCorp

例えばterraform planでDEBUGレベルのログを出力するには、環境変数TF_LOGDEBUGに設定します。

# コマンド一回限りでTF_LOGを設定する場合
TF_LOG=DEBUG terraform plan

# TF_LOGを設定した上でコマンド実行する場合
export TF_LOG=DEBUG
terraform plan

TF_LOGに設定できるログレベルは下記の5つです。

  • TRACE
  • DEBUG
  • INFO
  • WARN
  • ERROR

必要な情報量に応じて使い分けましょう。

TerraformとProviderで個別にログの出力レベルを設定する

TerraformそのものとProviderで別々にログレベルを設定することもできます。

Terraformそのもののログレベルを設定するには環境変数TF_LOG_COREを、

Providerのログレベルを設定するには環境変数TF_LOG_PROVIDERを利用します。

# TerraformそのもののログレベルをDEBUGに設定してplan実行
TF_LOG_CORE=DEBUG terraform plan

# ProviderのログレベルをDEBUGに設定してplan実行
TF_LOG_PROVIDER=DEBUG terraform plan

TF_LOG_CORE TF_LOG_PROVIDERともに、設定できるレベルはTF_LOGと同じです:

  • TRACE
  • DEBUG
  • INFO
  • WARN
  • ERROR

おわりに

以上、Terraformで出力ログレベルを変更するやり方をまとめました。

ちょっと覚えておくだけでも対応スピードが上がるので、こういった引き出しも増やしていきたいものです。

[関連記事]

www.bioerrorlog.work

www.bioerrorlog.work

参考

Debugging | Terraform by HashiCorp

terraform/logging.go at 271352620b43872aa99f7837f9c1c243b417a45c · hashicorp/terraform · GitHub