Pembersihan log Server Identitas
Apakah ada cara untuk membersihkan log untuk Sitecore 9.3 Identity Server?
Saya mencari konfigurasi logging tetapi tidak menemukannya. Saya ingin memperbarui konfigurasi agar secara otomatis menghapus log yang lebih lama dari 10 hari.
Jawaban
Identity Server menggunakan Serilog (https://github.com/serilog/serilog) untuk menulis log dan satu file sink dikonfigurasi secara default.
Yang mempertahankan 31 file (selama satu bulan) secara default. Jika Anda ingin mempertahankan hanya 10 hari log maka berikan retainedFileCountLimitargumen dengan nilai yang disetel ke 10 <IS Siteroot>\sitecorehost.xmlseperti yang ditunjukkan di bawah ini
Referensi -
- https://doc.sitecore.com/developers/91/sitecore-experience-manager/en/logging.html
- https://github.com/serilog/serilog-sinks-file#limits
Jika Anda ingin melakukan hanya di tingkat Sitecore maka Anda dapat menambahkan entri untuk folder log IdentityServer di <agent type="Sitecore.Tasks.CleanupAgent"situs CM tetapi pastikan Anda memberikan akses hapus ke pengguna IIS AppPool misalnya -IIS AppPool\CMSiteAppPoolUser
<remove folder="C:\inetpub\wwwroot\sc93identityserver.dev.local\logs" pattern="*.*" maxAge="10.00:00:00"/>
Saya pikir itu harus dilakukan bukan pada level Sitecore.
Saya melakukan hal serupa dengan skrip PowerShell terjadwal. Untuk kasus Anda, skrip Powershell ini harus melakukan pekerjaan:
$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}
Maka Anda perlu menambahkan eksekusi skrip ini ke penjadwal Windows jika Anda bekerja dengan hosting lokal atau menggunakan WebJobs jika Anda menggunakan Azure PaaS.