IdentityServerログのクリーンアップ
Sitecore 9.3 Identity Serverのログをクリーンアップする方法はありますか?
ロギング構成を検索しましたが、見つかりませんでした。10日以上経過したログを自動的に削除するように構成を更新したい。
回答
Identity ServerはSerilogを使用します(https://github.com/serilog/serilog)ログを書き込むために、単一のファイルシンクがデフォルトで構成されています。
デフォルトで31ファイル(1か月間)を保持します。10日間のログのみを保持する場合retainedFileCountLimitは<IS Siteroot>\sitecorehost.xml、以下に示すように、値を10に設定して引数を渡します。
参考文献-
- https://doc.sitecore.com/developers/91/sitecore-experience-manager/en/logging.html
- https://github.com/serilog/serilog-sinks-file#limits
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"/>
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を使用する必要があります。