ใครมีประสบการณ์สำหรับทั้งสอง? พวกเขาจะกองซ้อนกันได้อย่างไร
เราวางแผนที่จะใช้หนึ่งในนั้นเพื่อเข้าสู่ระบบในแอปพลิเคชันระดับองค์กร
อ้างอิง:
แก้ไข: เราไม่มีการอ้างอิงที่มีอยู่กับ nlog หรือ log4net
ใครมีประสบการณ์สำหรับทั้งสอง? พวกเขาจะกองซ้อนกันได้อย่างไร
เราวางแผนที่จะใช้หนึ่งในนั้นเพื่อเข้าสู่ระบบในแอปพลิเคชันระดับองค์กร
อ้างอิง:
แก้ไข: เราไม่มีการอ้างอิงที่มีอยู่กับ nlog หรือ log4net
คำตอบ:
ฉันเพิ่งได้รับมอบหมายให้ "สร้างต้นแบบการบันทึกบางส่วน" สำหรับโครงการที่กำลังจะมาถึง ฉันไม่มีประสบการณ์ในกรอบการบันทึกใด ๆ ฉันค้นคว้าวิ่งผ่านแบบฝึกหัดทำแอพของเล่น ฯลฯ บน Log4Net, NLog และ Enterprise Library สองสามวัน กลับมาอีก 3-4 สัปดาห์ต่อมาและรวบรวมพวกเขาเข้าด้วยกันเป็นตัวอย่างที่เหนียวแน่น หวังว่าสิ่งนี้มีประโยชน์สำหรับคุณ
คำแนะนำของฉันสำหรับโครงการของเราคือ:
ที่อยู่บนพื้นฐานของการค้นพบเหล่านี้ (ความคิดเห็น!):
เห็นได้ชัดว่าฉันชอบ NLog จนถึงตอนนี้ ไม่เพียงพอที่จะใช้ทั้งๆที่มีวิธีแก้ไขปัญหาอื่นที่ใช้ได้
การพิจารณาที่สำคัญที่ไม่ได้กล่าวถึงมากคือการสนับสนุนและอัปเดต
Log4Net ยังไม่ได้รับการปรับปรุงตั้งแต่รุ่น 1.2.10 ถูกตีพิมพ์ 19 เมษายน 2006
ในทางตรงกันข้าม NLog ได้รับการสนับสนุนอย่างแข็งขันตั้งแต่ปี 2549 ในไม่ช้าจะมีการปล่อยNLog 2.0 ที่รองรับหลายแพลตฟอร์มที่ไม่มีอยู่เมื่อ log4net ได้รับการปรับปรุงล่าสุดเช่น:
เมื่อเร็ว ๆ นี้ฉันมีประสบการณ์กับกรอบทั้งสองฉันคิดว่าฉันสามารถแบ่งปันมุมมองของฉันในแต่ละกรอบ
ฉันถูกขอให้ประเมินเฟรมเวิร์กการบันทึกสำหรับเว็บแอ็พพลิเคชันที่มีอยู่ฉัน จำกัด ขอบเขตตัวเลือกของฉันเป็น NLog (v2.0) และ log4net (v1.2.11) หลังจากผ่านฟอรัมออนไลน์ต่างๆ นี่คือสิ่งที่ฉันค้นพบ:
การตั้งค่า / การเริ่มต้นใช้งาน NLog นั้นง่ายมาก คุณผ่านบทช่วยสอนการเริ่มต้นใช้งานบนเว็บไซต์ของพวกเขาและคุณทำเสร็จแล้ว คุณได้รับความคิดที่เป็นธรรมสิ่งที่อาจเป็นกับ nlog ไฟล์กำหนดค่านั้นใช้งานง่ายจนใคร ๆ ก็สามารถเข้าใจการกำหนดค่าได้ ตัวอย่างเช่น: หากคุณต้องการตั้งค่าการล็อกภายในคุณตั้งค่าแฟล็กในโหนดส่วนหัวของไฟล์ Nlog config ซึ่งเป็นตำแหน่งที่คุณคาดว่าจะเป็น ใน log4net คุณตั้งค่าสถานะแตกต่างกันในส่วน appSettings ของ web.config
ใน log4net การบันทึกภายในไม่ได้ประทับเวลาเอาท์พุทซึ่งน่ารำคาญ ใน Nlog คุณจะได้รับบันทึกที่ดีด้วยการประทับเวลา ฉันพบว่ามันมีประโยชน์มากในการประเมินของฉัน
ตัวกรองใน log4net - คุณควรตรวจสอบคำถามของฉัน - ตัวกรอง log4net - วิธีเขียนและตัวกรองเพื่อละเว้นข้อความบันทึกและหากคุณพบคำตอบ / วิธีแก้ปัญหานี้โปรดแจ้งให้เราทราบ ฉันเข้าใจว่ามีวิธีแก้ปัญหาสำหรับคำถามนี้เนื่องจากคุณสามารถเขียนตัวกรองที่กำหนดเองของคุณเองได้ แต่สิ่งที่ไม่สามารถหาได้ง่ายใน log4net
ประสิทธิภาพ - ฉันบันทึกข้อความบันทึก 3,000 ข้อความไปยังฐานข้อมูลโดยใช้กระบวนงานที่เก็บไว้ ฉันใช้การวนรอบแบบง่าย (int i = 0; i <3000; i ++ ... ) เพื่อบันทึกข้อความเดียวกัน 3000 ครั้งสำหรับการเขียน: log4net AdoAppender ใช้เวลาเกือบสองเท่าของ NLog
Log4net ไม่รองรับตัวเชื่อมต่อแบบอะซิงโครนัส
มันเป็นการเปรียบเทียบที่เพียงพอสำหรับฉันที่จะเลือก NLog เป็นกรอบการบันทึก :)
สำหรับใครก็ตามที่เข้ามาที่กระทู้นี้คุณอาจต้องการกลับไปดูที่. Net Base Class Library (BCL) หลายคนพลาดการเปลี่ยนแปลงระหว่าง. Net 1.1 และ. Net 2.0 เมื่อมีการแนะนำคลาสTraceSource (ประมาณปี 2005)
การใช้ TraceSource นั้นคล้ายกับกรอบการบันทึกอื่น ๆ ที่มีการควบคุมอย่างละเอียดของการบันทึกการกำหนดค่าใน app.config / web.config และการเข้าถึงทางโปรแกรมโดยไม่ต้องมีโอเวอร์เฮดของแอปพลิเคชันองค์กร
นอกจากนี้ยังมีการเปรียบเทียบจำนวนลอย: "log4net vs TraceSource"
สำหรับเราแล้วความแตกต่างที่สำคัญคือความสมบูรณ์แบบโดยรวม ...
ลองดูที่Logger.IsDebugEnabled
NLog เปรียบเทียบกับ Log4Net จากการทดสอบของเรา NLog มีค่าใช้จ่ายน้อยกว่าและนั่นคือสิ่งที่เราเป็นหลังจากนั้น
ไชโย Florian
ก่อนอื่นดูที่สแต็กที่เหลือของคุณ
หากคุณใช้ NHibernate ระบบจะใช้ Log4Net โดยตรง กรอบงานอื่น ๆ อาจมีคนตัดไม้เฉพาะที่พวกเขาต้องการ
นอกเหนือจากนั้น: ทำงานได้ดี
ฉันใช้ Log4Net ด้วยตัวเอง อาจเป็นความเจ็บปวดในการกำหนดค่าและหากไม่ได้รับการกำหนดค่าอย่างถูกต้องมันเป็นความเจ็บปวดที่จะคิดออกสิ่งที่ผิดพลาด แต่คุณสามารถทำให้เกือบทุกอย่างที่คุณต้องการจากคนตัดไม้
หากคุณไม่มีปัญหาในการใช้งาน Log4Net ต่อไปนี้เป็นบทความที่ฉันเขียนเกี่ยวกับวิธีเริ่มต้นใช้งาน: http://elegantcode.com/2007/12/07/getting-started-with-log4net/
ดี .. ฉันใช้ห้องสมุดองค์กรสำหรับงานบันทึกฐานข้อมูลและตอนนี้ฉันเปลี่ยนเป็น NLog เนื่องจากปัญหาคอขวดของประสิทธิภาพ
ข้อมูลเปรียบเทียบบางอย่าง:
http://pauliusraila.blogspot.com/2010/10/solving-database-logging-bottlenecks.html
ฉันดังก้องข้างบนและไม่ชอบ nLog Entlib ป่องโดยไม่จำเป็น
Re: Log4net สิ่งหนึ่งที่ฉันได้รับเสมอกับ log4net นั้นลืมที่จะเพิ่มสิ่งต่อไปนี้ใน global.asax เพื่อเริ่มส่วนประกอบ:
log4net.Config.XmlConfigurator.Configure();
ถ้าคุณไปที่นี่คุณสามารถค้นหาเมทริกซ์ที่ครอบคลุมซึ่งรวมทั้ง libog NLog และ Log4Net ตลอดจน Enterprise Lib และผลิตภัณฑ์อื่น ๆ
ใครบางคนอาจโต้แย้งว่าเมทริกซ์นั้นทำในลักษณะที่จะขีดเส้นใต้คุณลักษณะของ lib เชิงพาณิชย์เพียงอย่างเดียวที่มีอยู่ในเมทริกซ์ ฉันคิดว่ามันเป็นเรื่องจริง แต่มันก็มีประโยชน์ในการขับเคลื่อนตัวเลือกของฉันกับ NLog
ความนับถือ
ดังที่ฉันสังเกตเห็น log4net ล็อกไฟล์เอาต์พุตที่แอปพลิเคชันตลอดเวลาทำงานอยู่ดังนั้นคุณจึงไม่สามารถลบได้ มิฉะนั้นพวกเขาจะคล้ายกัน
ดังนั้นฉันจึงชอบ NLog
เสียบด้านหน้าสำหรับโครงการที่มาเปิดผมทำงาน แต่ให้การสนทนามีชีวิตชีวาเกี่ยวกับการที่กรอบ NET เข้าสู่ระบบมีการใช้งานมากขึ้นฉันคิดว่าฉันโพสต์ลิงก์หน้าที่ที่จะSerilog
ในการใช้งานภายในแอพพลิเคชั่น Serilog นั้นคล้ายกับ log4net (และใช้งานหนัก) ซึ่งแตกต่างจากตัวเลือกการบันทึก. NET อื่น ๆ Serilog เกี่ยวกับการรักษาโครงสร้างของบันทึกเหตุการณ์สำหรับการวิเคราะห์ออฟไลน์ เมื่อคุณเขียน:
Log.Information("The answer is {Answer}", 42);
ไลบรารีการบันทึกส่วนใหญ่แสดงข้อความในสตริงทันที Serilog สามารถทำเกินไป แต่ก็เก็บรักษา{ Answer: 42 }
ทรัพย์สินเพื่อให้ในภายหลังโดยใช้หนึ่งในจำนวนของร้านค้าข้อมูล NoSQL Answer
คุณสามารถถูกเหตุการณ์แบบสอบถามขึ้นอยู่กับมูลค่าของ
เราอยู่ใกล้กับ 1.0 และสนับสนุนแพลตฟอร์มที่ทันสมัย (.NET 4.5, Windows Store และ Windows Phone 8) ทั้งหมด
ฉันสอง NLog ด้วยเพราะทำงานกับรหัสที่ไม่มีการจัดการด้วย ฉันคิดว่ามันอาจเป็นไปได้ที่จะใช้ log4net และ log4cxx ด้วยกัน แต่ NLog จัดการทั้งรหัสที่มีการจัดการและไม่มีการจัดการนอกกรอบ
ฉันยังดูที่Common.Loggingซุ้มที่ทำให้นามธรรมของ api การบันทึกมันรองรับ log4net, NLog และ Entreprise Library ฉันไม่คิดว่าฉันจะใช้มัน แต่ฉันชอบวิธีที่พวกเขาใช้ lambdas เพื่อปรับปรุงประสิทธิภาพเมื่อการบันทึกถูกปิดใช้งาน (คุณลักษณะที่ใช้ร่วมกับ NLog และอาจเป็นอย่างอื่น)
นอกจากนี้คุณยังอาจพิจารณาMicrosoft องค์กรห้องสมุดเข้าสู่ระบบที่ถูกบล็อก มันมาพร้อมกับนักออกแบบที่ดี
ฉันคิดว่าฉันทามติทั่วไปคือ nlog นั้นค่อนข้างง่ายต่อการกำหนดค่าและใช้งาน ทั้งสองมีความสามารถค่อนข้าง
จากประสบการณ์ของฉันSmartInspectเต้นทั้ง NLog และ log4net
มันใช้งานง่ายมากเป็นเอกสารที่ยอดเยี่ยมและคุณสามารถดูและกรองข้อความที่บันทึกไว้ก่อนหน้านี้ด้วยโปรแกรมดูบันทึกการโต้ตอบซึ่งเป็นข้อได้เปรียบที่แท้จริงของโลกขนาดใหญ่
สิ่งหนึ่งที่ฉันชอบคือมุมมองข้อมูลแบบแท็บเช่นแท็บเบราว์เซอร์ใน Chrome แต่ละแท็บสามารถให้มุมมองการกรองที่แตกต่างกันของบันทึก