2009-02-25 13 views
5

मेरे वर्तमान प्रोजेक्ट में मैं दो पुस्तकालयों का उपयोग कर रहा हूं जहां कोई लॉगिंगनेट और अन्य लॉगिंग के लिए अन्य एनएलओजी का उपयोग कर रहा है। मैं व्यक्तिगत रूप से एनएलओजी पसंद करता हूं इसलिए इसका उपयोग मेरे आवेदन में भी किया जाता है।लॉग 4net से NLog

मुझे log4net के बारे में बहुत कुछ नहीं पता है, इसलिए मैं पूछ रहा हूं कि log4net से NLog तक सभी संदेशों को प्रोग्रामेटिक रूप से आगे बढ़ाने का सबसे अच्छा तरीका क्या होगा।

post about a log4net forwarder at the NLog forum है लेकिन ऐसा लगता है कि किसी ने पहले ऐसा नहीं किया था।

+0

मैं पूरी तरह से एनएलओजी छोड़ दूंगा। इसे एक बेहतर विकल्प के रूप में विज्ञापित किया गया था, लेकिन इसके निर्माता ने माइक्रोसॉफ्ट द्वारा किराए पर लेने के बाद इस पर काम करना बंद कर दिया, जो शर्म की बात है .. मैंने बाद में लॉग 4नेट का उपयोग शुरू किया और मुझे इसे और अधिक पसंद है, शायद प्रलेखन देखें और देखें स्वयं। –

+0

संकेत के लिए धन्यवाद ... मैं अपने आवेदन के लिए log4net का उपयोग करने के लिए विचार करूंगा – Martin

+9

एनएलओजी बहुत सक्रिय प्रतीत होता है :-) –

उत्तर

6

एक कस्टम लॉग 4नेट एपेंडर बनाएं जो संदेशों को एक नलॉग लॉगर में लॉग करता है। यह कम से कम समाधान हो सकता है यदि आप लॉग लॉगनेट लॉगिंग के सभी अवसरों को बदलने के बजाय लॉग इन जानकारी को नलॉग में पास करना चाहते हैं।

देखने here, here और here

+2

यह पोस्ट भी देखें: https://forum.hibernate.org/viewtopic.php?p=2375611 – UpTheCreek

+0

एक Nuget पैकेज है जो log4net से NLog तक मानचित्र करता है। https://github.com/lanwin/log4net.NLogAppender 1. Nuget के साथ स्थापित करें। इंस्टॉल-पैकेज log4net.NLogAppender 2. इसे C#: NLogAppender में संदर्भित करें। प्रारंभ करें(); – Marksl

2

मूल रूप से आप एक log4net appender (log4net.Appender.IAppender) जो 'NLogs Logger या Target करने के लिए सभी DoAppend कॉल प्रतिनिधि होगा की आवश्यकता होगी।

1

मैं आज रात ऐसा करने की कोशिश कर रहा हूं। मैं कॉमन्स देखता हूं। लॉगिंग का कहना है कि इसमें पुस्तकालयों के बीच द्वि-दिशात्मक घटना मार्ग है।

  1. NuGet उपयोग Common.Logging.log4net और Common.Logging.NLog (जो पैकेज निर्भरता के माध्यम से log4net और NLog मिल जाएगा)
  2. नीचे विन्यास जोड़े को जोड़ने के लिए।
  3. Main() में प्रारंभ 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> 

संदर्भ का उपयोग करते हुए: Common.Logging Bridging Logging Systems

पूर्ण द्वि-दिशात्मक घटना Entlib 3.1, EntLib 4.1, log4net 1.2.9 के लिए समर्थन मार्ग, log4net 1.2 .10 और एनएलओजी लॉगिंग

संबंधित मुद्दे