JavaScriptを有効にしてください

【Elixir】SlackLog を使って Slack にログを送る方法

 ·  ☕ 2 分で読めます

【Elixir】LiveView でパスワードが消えてしまう現象の解決方法

Elixir で開発されたアプリケーションからSlackにログを送信する方法を紹介します。

環境

  • Elixir 1.14.2

SlackLog

SlackLog を入れることにより開発チームはSlackでアプリケーションのログをリアルタイムで確認でき、問題の検出や解決がスムーズになります。

SlackLog のインストール

まず、slack_log をプロジェクトに追加します。
mix.exsdeps 関数に以下のコードを追加してください。

1
2
3
4
5
defp deps do
  [
    {:slack_log, "~> 0.1.0"}
  ]
end

次に、ターミナルで mix deps.get コマンドを実行し、依存関係を取得してください。

設定ファイルの編集

次に、ログ出力の設定を行います。
config/config.exs ファイルに以下の設定を追加してください。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
# ロガー設定
config :logger,
    backends: [{SlackLog, :error_log}]
    
# Slackログ設定
config :logger, :error_log,
    slack_url: "https://url_for_slack_hook", # Slack Webhook URL
    level: :error, # Slack Send Log Level
    metadata: [:file, :line, :function]

# 各ログレベルのヘッダー設定
config :slack_log, :headers,
  emergency: "💀 New Emergency!!!",
  alert: "💀 New Alert!!!",
  critical: "❌ New Critical Error!!!",
  error: "❌ New Error",
  warning: "❌ New Warning",
  notice: "ℹ️ New Notice",
  info: "ℹ️ New Info",
  debug: "ℹ️ New Debug Message"

ログの通知

設定が完了したら、あとは通常通り Logger モジュールを使用してSlackへ通知されます。

1
Logger.error("エラーレベルのログです。")

これで、Slackに通知されます。

参考

共有

こぴぺたん
著者
こぴぺたん
Copy & Paste Engineer