Identity Server 8.0.16がファイル システムにログを書き込まない


概要

Identity Server 8.0.16がオンプレミス、Azure App Service、コンテナーのデプロイのファイル システムに書き込まないという問題があります。

この問題は、Serilog.Sinks.RollingFileがサード パーティによって非推奨化されたため、Serilog.Sinks.Fileで置き換えられるというロギングの実装の変更があったことで発生しました。

解決策

以下のようなカスタマイズの手順に従ってSerilog.Sinks.RollingFileを再導入することで、ファイル システムへのロギングを有効化することができます。

  1. Serilog.Sinks.RollingFile.dllをダウンロードして、Sitecore Identity Serverのインスタンス(最新版はバージョン3.3.0)のルート フォルダー内に配置します。
  2. \sitecorehost.xmlファイル内で、Fileの代わりにRollingFileを使用するよう<DefaultLogger>を更新します。
    ?xml version="1.0" encoding="utf-8"?>
    <Sitecore>
      <Logging>
        <Serilog>
          ...
            <DefaultLogger>
              <Name>RollingFile</Name>
              <Args>
                <pathFormat>logs\sts-{Date}.log</pathFormat>
                <outputTemplate>{Timestamp:o} [{Level:u3}] ({Application}/{MachineName}) {Message}{NewLine}{Exception}</outputTemplate>
              </Args>
            </DefaultLogger>
          ...
        </Serilog>
      </Logging>
    </Sitecore>
  3. \Sitecore.IdentityServer.Host.deps.jsonファイルを更新し、Serilog.Sinks.RollingFileを参照するようにします。これを行うには、Identity Serverインスタンスのルート フォルダー内の既存の\Sitecore.IdentityServer.Host.deps.jsonを以下のファイルで置き換えます。
    Sitecore.IdentityServer.Host.deps.json

    註: 将来的に必要な場合に変更を差し戻せるよう、\Sitecore.IdentityServer.Host.deps.jsonファイルを上記のファイルで置き換える前に、オリジナルのファイルのバックアップを作成するようにしてください。

  4. Identity Serverを再起動します。