2009-02-25 12 views
5

Şu anki projemde, birinin log4net'i ve günlüğe kaydetmesi için diğer NLog'u kullandığı iki kitaplık kullanıyorum. Ben şahsen NLog'u tercih ediyorum, bu yüzden başvurumda da kullanılıyor.log4net 'den NL4'e iletme

Log4net hakkında fazla bir şey bilmiyorum, bu yüzden log4net'ten NLog'a tüm iletileri program aracılığıyla iletmenin en iyi yolunun ne olacağını soruyorum.

post about a log4net forwarder at the NLog forum var ama hiç kimse bunu daha önce yapmadı gibi görünüyor.

+0

NLog'u tamamen bırakırdım. Daha iyi bir alternatif olarak ilan edildi, ancak yaratıcısı Microsoft tarafından tutulduktan sonra üzerinde çalışmayı bıraktı, bu utanç verici .. Daha sonra log4net kullanmaya başladım ve daha çok beğendim, belki de belgelere göz atıp kendin. –

+0

İpucu için teşekkürler ... Uygulamam için log4net'i kullanmayı düşüneceğim yerine – Martin

+9

NLog çok etkin görünüyor :-) –

cevap

6

İletileri bir nlog günlüğüne kaydeden bir özel log4net Ekleyicisi oluşturun. log loglarını görüntülemek için, log loglarını, logların loglarını ve loglarını (log) kullanabilmeniz için, log bilgisini nlog ile değiştirmemiz gerekir.

Temelde NLogs' Logger veya Target tüm DoAppend aramaları temsilci verecek bir log4net appender (log4net.Appender.IAppender) gerekir here, here ve here

+2

Ayrıca bu yazıya göz atın: https://forum.hibernate.org/viewtopic.php?p=2375611 – UpTheCreek

+0

Log4net'ten NLog'a eşlenen bir Nuget paketi var. https://github.com/lanwin/log4net.NLogAppender 1. Nuget ile yükleyin. Install-Package log4net.NLogAppender 2. C# ile başvurun: NLogAppender.Initialize(); – Marksl

2

bak.

1

Bu gece yapmaya çalışıyorum. Commons.Logging'in günlük kütüphaneleri arasında çift yönlü olay yönlendirmesi olduğunu söylediğini görüyorum.

  1. Kullanım Nuget
  2. aşağıda yapılandırmayı ekleyin (paket bağımlılıkları yoluyla Log4net ve nlog alacak) Common.Logging.log4net ve Common.Logging.NLog ekleyin. Main() olarak
  3. Log4net log4net.Config.XmlConfigurator.Configure();
<configuration> 
    <configSections> 
    <section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog" /> 
    <sectionGroup name="common"> 
     <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" /> 
    </sectionGroup> 
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> 
    </configSections> 
    <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <targets async="true"> 
     <target name="file" xsi:type="File" fileName="d:\logs\app1\logging.txt"/> 
     <target name="console" xsi:type="ColoredConsole" /> 
    </targets> 
    <rules> 
     <logger name="*" writeTo="file"/> 
     <logger name="*" writeTo="console"/> 
    </rules> 
    </nlog> 
    <common> 
    <logging> 
     <factoryAdapter type="Common.Logging.NLog.NLogLoggerFactoryAdapter, Common.Logging.NLog"> 
     <arg key="configType" value="INLINE" /> 
     </factoryAdapter> 
    </logging> 
    </common> 
    <log4net> 
    <!-- Commons.Logging will bridge the log4net messages to NLog, required to see TopShelf log messages --> 
    <appender name="CommonLoggingAppender" type="Common.Logging.Log4Net.CommonLoggingAppender, Common.Logging.Log4Net"> 
     <layout type="log4net.Layout.PatternLayout, log4net"> 
     <param name="ConversionPattern" value="%level - %class.%method: %message" /> 
     </layout> 
    </appender> 
    <root> 
     <level value="ALL" /> 
     <appender-ref ref="CommonLoggingAppender" /> 
    </root> 
    </log4net> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="NLog" publicKeyToken="5120e14c03d0593c" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
</configuration> 

Referanslar kullanılarak initialize: Common.Logging Bridging Logging Systems Tam çift-yönlü bir olay EntLib 3.1, EntLib 4.1, log4net 1.2.9 destek yönlendirme

, 1.2 Log4net .10 ve NLog günlüğe kaydetme