Bereinigung der Identity Server-Protokolle
Gibt es eine Möglichkeit, Protokolle für Sitecore 9.3 Identity Server zu bereinigen?
Ich habe nach der Protokollierungskonfiguration gesucht, aber keine gefunden. Ich möchte die Konfiguration so aktualisieren, dass Protokolle, die älter als 10 Tage sind, automatisch gelöscht werden.
Antworten
Identity Server verwendet Serilog (https://github.com/serilog/serilog) zum Schreiben von Protokollen und eine einzelne Dateisenke ist standardmäßig konfiguriert.
Hier werden standardmäßig 31 Dateien (für einen Monat) gespeichert. Wenn Sie nur 10 Tage Protokoll behalten möchten, übergeben Sie das retainedFileCountLimitArgument mit dem Wert 10 in, <IS Siteroot>\sitecorehost.xmlwie unten gezeigt
Referenzen -
- https://doc.sitecore.com/developers/91/sitecore-experience-manager/en/logging.html
- https://github.com/serilog/serilog-sinks-file#limits
Wenn Sie nur auf Sitecore-Ebene arbeiten möchten, können Sie einen Eintrag für den IdentityServer-Protokollordner auf <agent type="Sitecore.Tasks.CleanupAgent"der CM-Website hinzufügen. Stellen Sie jedoch sicher, dass Sie dem IIS AppPool-Benutzer Löschzugriff gewähren, z.IIS AppPool\CMSiteAppPoolUser
<remove folder="C:\inetpub\wwwroot\sc93identityserver.dev.local\logs" pattern="*.*" maxAge="10.00:00:00"/>
Ich denke, dass es nicht auf Sitecore-Ebene gemacht werden sollte.
Ich mache das Gleiche mit einem geplanten PowerShell-Skript. Für Ihren Fall sollte dieses Powershell-Skript die Arbeit erledigen:
$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}
Anschließend müssen Sie die Ausführung dieses Skripts zum Windows-Scheduler hinzufügen, wenn Sie mit lokalem Hosting arbeiten, oder WebJobs verwenden, wenn Sie Azure PaaS verwenden.