Identity Server ล็อกการล้างข้อมูล

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 ไฟล์ (เป็นเวลาหนึ่งเดือน) ตามค่าเริ่มต้น หากคุณต้องการเก็บบันทึกไว้เพียง 10 วันให้ส่งretainedFileCountLimitอาร์กิวเมนต์โดยตั้งค่าเป็น 10 ใน<IS Siteroot>\sitecorehost.xmlดังที่แสดงด้านล่าง

อ้างอิง -

  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 เท่านั้นคุณสามารถเพิ่มรายการสำหรับโฟลเดอร์บันทึก IdentityServer ใน<agent type="Sitecore.Tasks.CleanupAgent"เว็บไซต์ CM ได้ แต่ตรวจสอบให้แน่ใจว่าคุณได้ให้สิทธิ์การลบแก่ผู้ใช้ IIS AppPool เช่น -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 หากคุณทำงานกับโฮสติ้งในสถานที่หรือใช้WebJobsถ้าคุณใช้ Azure PaaS