Microsoft Teamsにエラーログを出力するLog4Net Custom Appenderを作ってみた。


Custom AppenderクラスはAppenderSkeletonを継承し、Append()メソッドをオーバライドして作成。
IncomingWebhooksのURLをlog4net.configから取得できるようにプロパティを作成しておく。

●Custom Appenderクラスは以下のとおり。
 MSTeamsUtil()の実装についてはこちらを参考にして下さい。
public class MSTeamsAppender : AppenderSkeleton {

    //Microsoft TeamsのコネクタURL
    public string IncomingWebhookURL { getset; }  

    // Microsoft Teamsにログ追記
    protected override void Append(LoggingEvent loggingEvent) {
        var mstu = new MSTeamsUtil();
        mstu.PostPlainMessage(IncomingWebhookURL, RenderLoggingEvent(loggingEvent));
    }
}
●log4net.configの設定方法は以下のとおり
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <log4net>
    <appender name="MSTeamsAppender" type="FxCommonLib.Log4NetAppender.MSTeamsAppender, FxCommonLib">
      <incomingWebhookURL value="https://outlook.office.com/・・・" />
      <layout type="log4net.Layout.PatternLayout">
        <ConversionPattern value="%username %d [%t] %-5p %c - %m%n" />
      </layout>
      <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="WARN" />
        <levelMax value="FATAL" />
      </filter>
    </appender>
    <root>
      <level value="INFO" />
      <appender-ref ref="MSTeamsAppender" />
    </root>
  </log4net>
</configuration>
こんな感じでログが投稿されます。

0 件のコメント:

コメントを投稿

厳選 Visual Studioの便利なショートカット

  エラー箇所にジャンプ 「Ctrl + Shift + F12」 ブレークポイント 設定/解除 「F9」 有効化/無効化 「Ctrl + F9」 ViEmu特有 「:ls」:バッファナンバーのリストを表示。 「:b2」:バッファ2のファイルを開く。 「:n」:次のバッファのファ...