คำถามติดแท็ก log4net

ไลบรารี Apache log4net เป็นเครื่องมือที่ช่วยให้โปรแกรมเมอร์ส่งคำสั่งบันทึกผลลัพธ์ไปยังเป้าหมายเอาต์พุตที่หลากหลาย log4net เป็นพอร์ตของเฟรมเวิร์ก Apache log4j ™ที่ยอดเยี่ยมไปยังรันไทม์Microsoft® .NET เราได้รักษากรอบการทำงานให้คล้ายกับ log4j เดิมในขณะที่ใช้ประโยชน์จากคุณสมบัติใหม่ในรันไทม์. NET

15
log4net กับ Nlog
ล็อคแล้ว คำถามและคำตอบนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ใครมีประสบการณ์สำหรับทั้งสอง? พวกเขาจะกองซ้อนกันได้อย่างไร เราวางแผนที่จะใช้หนึ่งในนั้นเพื่อเข้าสู่ระบบในแอปพลิเคชันระดับองค์กร อ้างอิง: log4net NLog แก้ไข: เราไม่มีการอ้างอิงที่มีอยู่กับ nlog หรือ log4net
355 log4net  nlog 

6
วิธีติดตามปัญหา log4net
ฉันใช้ log4net ตลอดเวลา แต่สิ่งหนึ่งที่ฉันไม่เคยคิดเลยก็คือจะบอกได้อย่างไรว่าเกิดอะไรขึ้นภายใน ตัวอย่างเช่นฉันมีตัวต่อคอนโซลและตัวผนวกฐานข้อมูลในโครงการของฉัน ฉันทำการเปลี่ยนแปลงเล็กน้อยกับฐานข้อมูลและรหัสและตอนนี้ตัวผนวกฐานข้อมูลไม่ทำงานอีกต่อไป ฉันจะคิดออกว่าทำไมในที่สุด แต่มันจะช่วยได้มากถ้าฉันเห็นว่าเกิดอะไรขึ้นภายใน log4net log4net สร้างผลลัพธ์ประเภทใดบ้างที่ฉันสามารถดูเพื่อลองหาสาเหตุของปัญหาได้หรือไม่
191 .net  logging  log4net 

13
Log4net ไม่ได้เขียนบันทึกในไฟล์บันทึก
ฉันสร้างสถานการณ์ง่าย ๆ โดยใช้ Log4net แต่ดูเหมือนว่าตัวบันทึกการทำงานของฉันไม่ทำงานเนื่องจากข้อความไม่ถูกเพิ่มลงในไฟล์บันทึก ฉันได้เพิ่มสิ่งต่อไปนี้ในไฟล์ web.config: <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" requirePermission="false"/> </configSections> <log4net> <appender name="LogFileAppender" type="log4net.Appender.FileAppender"> <file value="D:\MyData\Desktop\LogFile.txt" /> <appendToFile value="true" /> <encoding value="utf-8" /> <layout type="log4net.Layout.SimpleLayout" /> </appender> <root> <level value="INFO" /> <appender-ref ref="LogFileAppender" /> </root> </log4net> ภายในไฟล์ ASAX ทั่วโลกฉันได้เพิ่ม: ILog logger = LogManager.GetLogger(typeof(MvcApplication)); และภายในเมธอด Application_Start: logger.Info("Starting …
159 c#  .net  asp.net  logging  log4net 

6
คุณสามารถกำหนดค่า log4net ในรหัสแทนการใช้ไฟล์กำหนดค่าได้หรือไม่?
ฉันเข้าใจว่าเหตุใด log4net จึงใช้app.configไฟล์ในการตั้งค่าการบันทึกดังนั้นคุณจึงสามารถเปลี่ยนวิธีบันทึกข้อมูลได้อย่างง่ายดายโดยไม่จำเป็นต้องคอมไพล์โค้ดของคุณใหม่ แต่ในกรณีของฉันฉันไม่ต้องการแพ็คapp.configไฟล์ด้วยปฏิบัติการของฉัน และฉันไม่ต้องการแก้ไขการตั้งค่าการบันทึกของฉัน มีวิธีให้ฉันตั้งค่ารหัสเข้าสู่ระบบแทนที่จะใช้app.configหรือไม่ นี่คือไฟล์กำหนดค่าอย่างง่ายของฉัน: <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections> <log4net> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <file value="Logs\EventLog.txt" /> <appendToFile value="false" /> <rollingStyle value="Size" /> <maxSizeRollBackups value="5" /> <maximumFileSize value="1GB" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" /> </layout> </appender> …
137 c#  .net  logging  log4net 

5
กำหนดค่า Log4net เพื่อเขียนไปยังไฟล์หลาย ๆ ไฟล์
ฉันต้องการเขียนบันทึกลงในไฟล์บันทึก 2 ไฟล์จากกระบวนการเดียวกัน เป็นไปได้ไหมที่จะใช้ log4net ฉันจะต้องเขียนข้อความแยกกันไปยังไฟล์บันทึกแต่ละไฟล์ ฉันจะเขียนข้อความถึงผู้ตรวจสอบรายใดรายหนึ่งได้อย่างไร
130 log4net 

7
ลำดับชั้น log4net และระดับการบันทึก
ไซต์นี้ระบุว่า ผู้บันทึกอาจถูกกำหนดระดับ ระดับคืออินสแตนซ์ของคลาส log4net.Core.Level ระดับต่อไปนี้กำหนดตามลำดับความสำคัญที่เพิ่มขึ้น : ทั้งหมด DEBUG ข้อมูล เตือน ข้อผิดพลาด FATAL ปิด DEBUG ดูเหมือนจะมีลำดับความสำคัญต่ำสุดและ ERROR สูงกว่า คำถาม ถ้าฉันตั้งค่าต่ำสุดและสูงสุดตัวอย่าง DEBUG และ ERROR มันจะพิมพ์ทุกอย่าง DEBUG, INFO, WARN และ ERROR โดยไม่ต้องใช้ตัวกรองขั้นต่ำและสูงสุด ถ้าฉันระบุข้อผิดพลาด (ระดับการบันทึก = ข้อผิดพลาด) จะรวม DEBUG, INFO & WARN <filter type="log4net.Filter.LevelRangeFilter"> <param name="LevelMin" value="ERROR"/> <param name="LevelMax" value="ERROR"/> </filter> แทนตัวกรองขั้นต่ำและสูงสุด เป็นไปได้หรือไม่ที่จะกำหนดค่าระดับและรวมระดับอื่น ๆ …

13
log4net ไม่ทำงาน
สวัสดีฉันมีการกำหนดค่านี้ใน web.config ของฉัน <log4net> <appender name="LogFileAppender" type="log4net.Appender.FileAppender"> <param name="File" value="mylog.log" /> <param name="AppendToFile" value="true" /> <layout type="log4net.Layout.PatternLayout"> <param name="Header" value="" /> <param name="Footer" value="" /> <param name="ConversionPattern" value="%d [%t] %-5p %m%n" /> </layout> </appender> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" > <layout type="log4net.Layout.PatternLayout"> <param name="Header" value="[Header]\r\n" /> <param name="Footer" value="[Footer]\r\n" /> <param name="ConversionPattern" …
123 c#  .net-4.0  log4net 


3
ปัญหาไฟล์ที่ถูกล็อก log4net RollingFileAppender เป็นระยะ ๆ
เราพบปัญหาไม่ต่อเนื่องในเครื่องพัฒนาและการผลิตโดยที่ไฟล์บันทึกของเราไม่ได้รับการบันทึก เมื่อทำงานในการพัฒนาและการดีบักโดยใช้ Visual Studio เราได้รับข้อความแสดงข้อผิดพลาด log4net ต่อไปนี้ในหน้าต่างผลลัพธ์ VS: log4net:ERROR [RollingFileAppender] Unable to acquire lock on file C:\folder\file.log. กระบวนการนี้ไม่สามารถเข้าถึงไฟล์ 'C: \ folder \ file.log' ได้เนื่องจากถูกใช้โดยกระบวนการอื่น log4net:ERROR XmlConfigurator: Failed to find configuration section 'log4net' in the application's .config file. Check your .config file for the <log4net> and <configSections> elements. ส่วนการกำหนดค่าควรมีลักษณะดังนี้: <section name="log4net" …


3
ฉันจะแก้ไขข้อผิดพลาดในการกำหนดค่าด้วย Nant 0.91 ได้อย่างไร
หลังจากดาวน์โหลด Nant 0.91 ฉันได้รับข้อผิดพลาดในการกำหนดค่าที่ค่อนข้างคลุมเครือเกี่ยวกับการกำหนดค่าหรือความปลอดภัย (ดูด้านล่าง) ฉันพยายามอัพเกรดไฟล์ปฏิบัติการ Nant ของฉันจาก 0.86 เป็น 0.91 ฉันจะแก้ไขปัญหาด้านล่างเมื่อสร้างบนเครื่อง Windows 7 ได้อย่างไร log4net: ERROR XmlConfiguratorAttribute: Exception รับ ConfigurationFileLocation ต้องสามารถแก้ไข ConfigurationFileLocation เมื่อไม่ได้ตั้งค่าคุณสมบัติ ConfigFile และ ConfigFileExtension System.Security.SecurityException: ขออนุญาตประเภท 'System.Security.Permissions.FileIOPermission, mscorlib, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089' ล้มเหลว ใน System.Security.CodeAccessSecurityEngine.Check (Object demand, StackCrawlMark & ​​stackMark, Boolean isPermSet) …
106 windows-7  build  log4net  nant 

6
ฉันจะแก้ปัญหา log4net ได้อย่างไรโดยเปลี่ยน publickeytoken
เรามีโปรเจ็กต์ asp.net 4.0 ซึ่งใช้เฟรมเวิร์กสองสามตัวซึ่งขึ้นอยู่กับ log4net เวอร์ชัน 1.2.10.0 วันนี้ฉันพยายามรวมเฟรมเวิร์กใหม่ซึ่งขึ้นอยู่กับ log4net เวอร์ชัน 1.2.11.0 ฉันก็ติดตั้งแต่นั้นมา: log4net 1.2.10.0 มี publickeytoken = 1b44e1d426115821 log4net 1.2.11.0 มี publickeytoken = 669e0ddf0bb1aa2a เนื่องจากสิ่งเหล่านี้แตกต่างกันฉันจึงไม่สามารถใช้การเปลี่ยนเส้นทางแอสเซมบลี (เพื่อให้เฟรมเวิร์กทั้งหมดใช้ log4net เวอร์ชันเดียวกัน) หรือโค้ดเบส (เพื่อให้มีเพียงเฟรมเวิร์กใหม่ใช้เวอร์ชัน 1.2.11.0) ผ่านองค์ประกอบรันไทม์ใน web.config ตัวเลือกของฉันที่นี่มีอะไรบ้าง? (และเหตุใด log4net จึงเปลี่ยน publickeytokens ไปมาระหว่างเวอร์ชันเนื่องจากฉันเข้าใจว่าคีย์ที่หายไปเป็นสาเหตุของการสลับระหว่างเวอร์ชัน 1.2.9.0 และ 1.2.10.0 พวกเขาทำคีย์หายอีกหรือไม่ฉันจะอาสาดรอปบ็อกซ์ของฉัน เพื่อให้ปลอดภัยหากพวกเขาต้องการ ... ) แก้ไข: ตกลงดังนั้นพวก log4net จึงมีความคิดที่ว่าการปล่อยปุ่มสองปุ่มเป็นความคิดที่ดี …

5
log4net อาร์กิวเมนต์ไปยัง LogManager.GetLogger
เหตุใดตัวอย่าง log4net ส่วนใหญ่จึงรับคนตัดไม้สำหรับคลาสโดยทำสิ่งนี้: private static ILog logger = LogManager.GetLogger( System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); แทนที่จะส่งผ่าน typeof (MyClass): private static ILog logger = LogManager.GetLogger(typeof(MyClass)); มีเหตุผลอื่นในการทำเช่นนี้นอกเหนือจากข้อเท็จจริงที่ว่าตัวเลือกแรกไม่ต้องการให้คุณพิมพ์ชื่อคลาสเฉพาะหรือไม่?
98 log4net 

3
Log4Net วิธีเพิ่มฟิลด์ที่กำหนดเองในการบันทึกของฉัน
ฉันใช้แอปพลิเคชัน log4net.Appender.AdoNetAppender ตาราง log4net ของฉันเป็นฟิลด์ต่อไปนี้[Date],[Thread],[Level],[Logger],[Message],[Exception] ฉันจำเป็นต้องเพิ่มฟิลด์อื่นในตาราง log4net (เช่น SalesId) แต่ฉันจะระบุใน xml และในรหัสของฉันเพื่อบันทึก "SalesId" ได้อย่างไรเมื่อบันทึกข้อความแสดงข้อผิดพลาดหรือข้อมูล เช่น log.Info("SomeMessage", SalesId) นี่คือ log4net xml <appender name="SalesDBAppender" type="log4net.Appender.AdoNetAppender"> <bufferSize value="1" /> <connectionType value ="System.Data.SqlClient.SqlConnection" /> <connectionString value="Data Source=..." /> <commandText value="INSERT INTO Log4Net ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" /> <parameter> <parameterName value="@log_date" …
98 c#  log4net  appender 

13
Log4Net config ในไฟล์ภายนอกไม่ทำงาน
เรากำลังใช้ log4net และต้องการระบุการกำหนดค่าในไฟล์กำหนดค่าภายนอก (ตามที่เราได้ทำกับส่วนอื่น ๆ ) ในการดำเนินการนี้เราได้เปลี่ยนส่วน log4net ใน App.config เป็น: ... <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> ... <log4net configSource="Log.config" /> ... และในไฟล์ Log.Config (ไดเร็กทอรีเดียวกับ App.config) เรามี: <log4net> <appender name="General" type="log4net.Appender.FileAppender"> <file value="myapp.log" /> <layout type="log4net.Layout.SimpleLayout" /> </appender> <root> <appender-ref ref="General" /> </root> </log4net> อย่างไรก็ตามเมื่อเราเรียกใช้แอปจะไม่มีการสร้างไฟล์บันทึก (และไม่มีการบันทึก) ไม่มีข้อความแสดงข้อผิดพลาดที่ส่งออกไปยังคอนโซล หากเราย้ายเนื้อหาของไฟล์ Log.config กลับไปที่ App.config …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.