[C#] ให้ Log4net เขียน Log แยกตาม Process Id ของ Application

จาก Blog ตอนก่อนของ Site ได้ Deploy ตัว .Net App ไว้ที่ Windows Server ไว้ที่ Drive C: แล้วให้ User Remote เข้ามาใช้งานครับ แต่พอเวลามีปัญหามันดัน Write Log ไม่ได้ครับ เพราะ Application ทุกตัวที่ที่รันขึ้นมา ดันเขียน Log ลงไปที่ Path และไฟล์ชื่อเดียวกันครับ ทำให้ User สามารถเปิดโปรแกรมใช้งานได้แค่ 1 Instance เท่านั้นครับ เมื่อทาง Dev ต้องการหาสาเหตุของ Defect บางข้อครับ แต่เรื่องนี้มันก็ขัดใจสำหรับ User มากๆ ที่ไม่สามารทำงานได้ครับ สำหรับทางแก้ – ใช้ Log4Net มันเขียน Log File ตาม Process Id ของ exe ที่เปิดอยู่ครับ โดยสามารถไปแก้ที่ตัว Appender ได้ ดังนี้ สำหรับตัว Appender เต็มๆครับ โดยการเดิม [%processid] ลงไปใน value ที่กำหนด Path และชื่อไฟล์ ในส่วนของ PatternString ตัวอย่างชื่อของ Log File ที่ได้มาครับ Reference