IdentityServerログのクリーンアップ

Sep 15 2020

Sitecore 9.3 Identity Serverのログをクリーンアップする方法はありますか?

ロギング構成を検索しましたが、見つかりませんでした。10日以上経過したログを自動的に削除するように構成を更新したい。

回答

2 SuryaNarayan Sep 29 2020 at 19:37

Identity ServerはSerilogを使用します(https://github.com/serilog/serilog)ログを書き込むために、単一のファイルシンクがデフォルトで構成されています。

デフォルトで31ファイル(1か月間)を保持します。10日間のログのみを保持する場合retainedFileCountLimitは<IS Siteroot>\sitecorehost.xml、以下に示すように、値を10に設定して引数を渡します。

参考文献-

  1. https://doc.sitecore.com/developers/91/sitecore-experience-manager/en/logging.html
  2. https://github.com/serilog/serilog-sinks-file#limits
3 SuryaNarayan Sep 21 2020 at 16:00

Sitecoreレベルでのみ実行する場合は<agent type="Sitecore.Tasks.CleanupAgent"、CM WebサイトのIdentityServerログフォルダーのエントリを追加できますが、IISAppPoolユーザーに削除アクセス権を付与するようにしてください。IIS AppPool\CMSiteAppPoolUser

<remove folder="C:\inetpub\wwwroot\sc93identityserver.dev.local\logs" pattern="*.*" maxAge="10.00:00:00"/>

1 Anton Sep 15 2020 at 21:41

Sitecoreレベルではなく行うべきだと思います。

スケジュールされたPowerShellスクリプトで同様のことを行います。あなたの場合、このPowershellスクリプトが機能するはずです。

$old = 10 $folder = 'your path'
Get-ChildItem $folder | Where-Object {-not $_.PSIsContainer -and $now.Subtract($_.CreationTime).Days -gt $old } | ForEach-Object {Remove-Item $_.FullName -Confirm:$false -Force -Recurse}

次に、オンプレミスホスティングを使用している場合は、このスクリプトの実行をWindowsスケジューラに追加するか、AzurePaaSを使用している場合はWebJobsを使用する必要があります。