LoginSignup
6
8

More than 3 years have passed since last update.

Azure WebApp とログ

Posted at

Azure WebApp とログ

ASP.NET Core のログを Azure WebApp に出力するメモ。

ASP.NET Core の公式マニュアルに手順が書かれているけど、思った通りに行かないので検証してみた。

検証

環境

  • Azure WebApp (Windows)
  • ASP.NET Core 2.1 の MVC アプリケーション
  • デプロイは Azure WebApp の GitHub からのデプロイ

結果

ファイルシステムのアプリケーションログを有効にして、詳細レベルでログを出力するように。

image.png

ウェブアプリをリロードしても、ログは出力されませんでした。

image.png

公式マニュアル通り、Microsoft.Extensions.Logging.AzureAppServices パッケージを追加して、以下のコードを追加します。

return WebHost.CreateDefaultBuilder(args)
    .ConfigureLogging(logging => logging.AddAzureWebAppDiagnostics())
    .UseStartup<Startup>();

今度はリロードするとログが出力されるようになりました!

image.png

公式マニュアル通りの結果になりました。

結果 (Linux)

実は私は Web App (Linux) を使ってたんですね。なかなか公式マニュアル通りにならない。試しに Web App (Windows) を使ったら公式マニュアル通りになりました。

どこが違うかというと... logging.AddAzureWebAppDiagnostics() を書かなくてもログが出力されるんですね。

Web App (Linux) は Docker スタックになってなくても Docker コンテナで動作しています。(確か) Web App (Linux) の App Service ログは Docker コンテナの STDOUT / STDERR が出力されるようになってるので追加のコードは不要なんですね。

  • Microsoft.Extensions.Logging.AzureAppServices パッケージは不要
  • Azure の設定でログレベルの変更をすることができない

ってことなんですね。

ログの設定画面も Web App (Windows) と違います。

image.png

結論

logging.AddAzureWebAppDiagnostics() は Web App (Linux) では意味はないけど、書いてて困ることはあまりないと思うのでとりあえず書いておきましょう。

なんだかんだ言って、Web App (Windows) のほうが使いやすいですね。

6
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
8