5

लॉग नहीं करता है मेरे पास कई एएसपी.NET अनुप्रयोग हैं जो बिना किसी समस्या के log4net का उपयोग करते हैं। मैं एमवीसी पुस्तकालयों का उपयोग करके लिखी गई किसी भी सेवा में कुछ भी लॉग इन करने के लिए log4net प्राप्त करने में सक्षम नहीं हूं। मेरे पास सभी सेवाओं में कॉन्फ़िगरेशन समान है (लॉग फ़ाइल नाम से अलग)। प्रत्येक सेवा एक ही उपयोगकर्ता के रूप में चल रही है और उसी एप्लिकेशन पूल का उपयोग करती है। इस प्रकार,एप्लिकेशन

<log4net> 
     <appender name="XMLAppender" type="log4net.Appender.RollingFileAppender"> 
      <file value="C:\logs\SERVICENAME.Log.xml"/> 
      <appendToFile value="true"/> 
      <rollingStyle value="Composite"/> 
      <datePattern value="yyyyMM"/> 
      <maxSizeRollBackups value="10"/> 
      <maximumFileSize value="100MB"/> 
      <layout type="log4net.Layout.XmlLayoutSchemaLog4j"> 
       <locationInfo value="false"/> 
      </layout> 
    </appender> 
     <root> 
      <level value="INFO"/> 
      <appender-ref ref="XMLAppender"/> 
     </root> 
    </log4net> 

मैं सभी में configSection प्रविष्टि:

<configSections> 
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> 
... 
</configSections> 

मैं भी log4net डिबगिंग चालू है और से system.diagnostics निर्धारित किया है

यहाँ विन्यास मैं उपयोग कर रहा हूँ है एक फ़ाइल में ट्रेस लिखें। यहां वह जगह है जहां मुझे एमवीसी और गैर-एमवीसी अनुप्रयोगों के बीच उत्पादन में अंतर दिखाई देता है।

MVC:

log4net: log4net assembly [log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821]. Loaded from [C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\MVCSERVICENAME\25c1b478\883641ac\assembly\dl3\707a9005\e1887c7f_5040ca01\log4net.DLL]. (.NET Runtime [2.0.50727.3074] on Microsoft Windows NT 6.0.6002 Service Pack 2, v.286) 
log4net: DefaultRepositorySelector: defaultRepositoryType [log4net.Repository.Hierarchy.Hierarchy] 
log4net: DefaultRepositorySelector: Creating repository for assembly [MVCSERVICENAME, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null] 
log4net: DefaultRepositorySelector: Assembly [MVCSERVICENAME, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null] Loaded From [C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\MVCSERVICENAME\25c1b478\883641ac\assembly\dl3\13a19b30\fdb642f4_937dca01\MVCSERVICENAME.DLL] 
log4net: DefaultRepositorySelector: Assembly [MVCSERVICENAME, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null] does not have a RepositoryAttribute specified. 
log4net: DefaultRepositorySelector: Assembly [MVCSERVICENAME, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null] using repository [log4net-default-repository] and repository type [log4net.Repository.Hierarchy.Hierarchy] 
log4net: DefaultRepositorySelector: Creating repository [log4net-default-repository] using type [log4net.Repository.Hierarchy.Hierarchy] 
log4net: Hierarchy: Shutdown called on Hierarchy [log4net-default-repository] 

गैर MVC (कार्य):

log4net log4net assembly [log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821]. Loaded from [C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\SERVICENAME\33034378\c825df91\assembly\dl3\fe97001a\e1887c7f_5040ca01\log4net.DLL]. (.NET Runtime [2.0.50727.3074] on Microsoft Windows NT 6.0.6002 Service Pack 2, v.286) 
log4net DefaultRepositorySelector: defaultRepositoryType [log4net.Repository.Hierarchy.Hierarchy] 
log4net DefaultRepositorySelector: Creating repository for assembly [SERVICENAME, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null] 
log4net DefaultRepositorySelector: Assembly [SERVICENAME, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null] Loaded From [C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\SERVICENAME\33034378\c825df91\assembly\dl3\827ed068\1a38e2eb_fc7cca01\SERVICENAME.DLL] 
log4net DefaultRepositorySelector: Assembly [SERVICENAME, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null] does not have a RepositoryAttribute specified. 
log4net DefaultRepositorySelector: Assembly [SERVICENAME, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null] using repository [log4net-default-repository] and repository type [log4net.Repository.Hierarchy.Hierarchy] 
log4net DefaultRepositorySelector: Creating repository [log4net-default-repository] using type [log4net.Repository.Hierarchy.Hierarchy] 
log4net XmlConfigurator: configuring repository [log4net-default-repository] using .config file section 
log4net XmlConfigurator: Application config file is [C:\content\SERVICENAME\web.config] 
log4net XmlConfigurator: Configuring Repository [log4net-default-repository] 
log4net XmlHierarchyConfigurator: Configuration update mode [Merge]. 
log4net XmlHierarchyConfigurator: Logger [root] Level string is [INFO]. 
log4net XmlHierarchyConfigurator: Logger [root] level set to [name="INFO",value=40000]. 
log4net XmlHierarchyConfigurator: Loading Appender [XMLAppender] type: [log4net.Appender.RollingFileAppender] 
log4net XmlHierarchyConfigurator: Setting Property [File] to String value [C:\Windows\Temp\SERVICENAME.Log.xml] 
log4net XmlHierarchyConfigurator: Setting Property [AppendToFile] to Boolean value [True] 
log4net XmlHierarchyConfigurator: Setting Property [RollingStyle] to RollingMode value [Composite] 
log4net XmlHierarchyConfigurator: Setting Property [DatePattern] to String value [yyyyMM] 
log4net XmlHierarchyConfigurator: Setting Property [MaxSizeRollBackups] to Int32 value [10] 
log4net XmlHierarchyConfigurator: Setting Property [MaximumFileSize] to String value [100MB] 
log4net XmlHierarchyConfigurator: Setting Property [LocationInfo] to Boolean value [False] 
log4net XmlHierarchyConfigurator: Setting Property [Layout] to object [log4net.Layout.XmlLayoutSchemaLog4j] 
log4net RollingFileAppender: Type = [0], r0 = [197001], r1 = [197001] 
log4net RollingFileAppender: Type = [1], r0 = [197001], r1 = [197001] 
log4net RollingFileAppender: Type = [2], r0 = [197001], r1 = [197001] 
log4net RollingFileAppender: Type = [3], r0 = [197001], r1 = [197001] 
log4net RollingFileAppender: Type = [4], r0 = [197001], r1 = [197001] 
log4net RollingFileAppender: Type = [5], r0 = [197001], r1 = [197002] 
log4net RollingFileAppender: Searched for existing files in [C:\Windows\Temp] 
log4net RollingFileAppender: curSizeRollBackups starts at [0] 
log4net RollingFileAppender: [200912] vs. [200912] 
log4net FileAppender: Opening file for writing [C:\Windows\Temp\SERVICENAME.Log.xml] append [True] 
log4net XmlHierarchyConfigurator: Created Appender [XMLAppender] 
log4net XmlHierarchyConfigurator: Adding appender named [XMLAppender] to logger [root]. 
log4net XmlHierarchyConfigurator: Hierarchy Threshold [] 
log4net DefaultRepositorySelector: Creating repository for assembly [SERVICENAME.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null] 
log4net DefaultRepositorySelector: Assembly [SERVICENAME.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null] Loaded From [C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\SERVICENAME\33034378\c825df91\assembly\dl3\d74dc9d5\8aa6a7e8_fc7cca01\SERVICENAME.Core.DLL] 
log4net DefaultRepositorySelector: Assembly [SERVICENAME.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null] does not have a RepositoryAttribute specified. 
log4net DefaultRepositorySelector: Assembly [SERVICENAME.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null] using repository [log4net-default-repository] and repository type [log4net.Repository.Hierarchy.Hierarchy] 
log4net DefaultRepositorySelector: repository [log4net-default-repository] already exists, using repository type [log4net.Repository.Hierarchy.Hierarchy] 

दोनों ही मामलों के रूप में निम्नानुसार मैं Ilog वस्तु बनाने रहा हूँ में:

निजी स्थिर केवल पढ़ने के लिए Ilog लॉग = LogManager .GetLogger (typeof (className));

क्या मुझे कुछ याद आ रहा है या कुछ बदलाव मुझे एमवीसी के लिए काम करने के लिए करने की ज़रूरत है? इस बिंदु पर मैं एमवीसी के साथ सही तरीके से काम करने के लिए जाना जाता है, तो मैं एक और लॉगिंग समाधान में बदलने के लिए तैयार भी होगा।

धन्यवाद टिम

+0

क्या आपकी कार्यकर्ता प्रक्रिया में c: \ logs तक पहुंच पहुंच है? –

+0

हां। इसके लायक होने के लिए मैंने अभी एनएलओजी की कोशिश की और यह पूरी तरह से काम किया। कुछ समय पहले log4net पर छोड़ दिया जाना चाहिए था। –

उत्तर

0

उपयोग NLog। बस काम करने लगता है। मुझे मूल निर्देशिका में (Web.config के साथ) NLog.config फ़ाइल डालना पड़ा और यह ठीक काम करता था। सही निर्देशिका में लिखने में सक्षम था, जो मुझे साबित करता है कि निर्देशिका अनुमतियां सही ढंग से सेटअप की गई थीं। परिवर्तन करने के लिए लगभग 5 मिनट समाप्त होने लगते हैं।

यह जानना अच्छा होगा कि लॉग 4नेट ने क्यों खेलना बंद कर दिया।

+1

या ELMAH http://code.google.com/p/elmah/ – David

+0

पर एक नज़र डालें, मैं इसे देख लूंगा। धन्यवाद डेविड। –

+2

ELMAH वास्तव में अच्छा है लेकिन यह log4net को प्रतिस्थापित नहीं करता है, यह इसे पूरा करता है। ELMAH अनचाहे अपवादों को लॉग करने के लिए एक महान संसाधन है, उदाहरण के लिए सामान जो कुछ कारणों से आपके lo4net कॉल के माध्यम से गुजरता है (उदाहरण के लिए एक डेवलपर कोशिश/पकड़ जोड़ने या अपवाद लॉग करने के लिए भूल गया) –

10

मैं जानता हूँ कि इस पोस्ट काफी पुराना है लेकिन मैं यह भी एक WCF परियोजना में इस मुद्दे (डिफ़ॉल्ट log4net भंडार) हो रही थी। मैं web.config का उपयोग log4net सेक्शन (एक अलग log4net.config फ़ाइल नहीं) के साथ कर रहा था।

मुद्दा मैं अपने AssemblyInfo.cs में निम्नलिखित रखा चारों ओर पाने के लिए:

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Web.config", Watch = true)] 

ही तब भी होगा जब एक बाहरी कॉन्फ़िगरेशन फ़ाइल का उपयोग हालांकि। HTH, सियारन

+0

धन्यवाद - मेरे पास बिल्कुल वही समस्या थी और यह हल हो गया। – Justin

+0

मैं ऐप_स्टैटअप में कोड का उपयोग कर रहा था, इसका उपयोग करके इस मुद्दे को हल किया। – Clint

0

मेरे मामले में, यह क्योंकि परियोजना गुण बिन \ डिबग करने के लिए उत्पादन के लिए स्थापित किए गए थे लेकिन log4net dll आवश्यक है कि log4net.config फ़ाइल बिन फ़ोल्डर में मौजूद है। मैंने परियोजना गुणों को बिन फ़ोल्डर में आउटपुट में बदल दिया और log4net.config फ़ाइल को सही समय पर बिल्ड समय पर कॉपी किया गया था।

0

इसके अतिरिक्त, लॉग 4नेट कॉन्फ़िगरेशन फ़ाइल के लिए "कॉपी स्थानीय" सेट करना सुनिश्चित करना कई मुद्दों को भी रोक देगा।

+0

यह शायद एक टिप्पणी होनी चाहिए, पूर्ण उत्तर नहीं ... – IronMan84

4

मेरा वेब एप्लिकेशन वेब रूट में एक अलग log4net.config फ़ाइल के साथ एक एएसपी.नेट एमवीसी है।

बाद मैं (Global.asax में) में कोड के माध्यम से log4net आरंभ Application_Start का सहारा googling और बाल खींच का एक बहुत:

protected void Application_Start() 
{ 
    var logConfigFilePath = Server.MapPath("~/log4net.config"); 

    log4net.Config.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(logConfigFilePath)); 
} 

यह समस्या मेरे लिए हल और log4net सही ढंग से प्रवेश करने शुरू कर दिया।

+0

नोट, आप log4net config को 'Web.config' में डाल सकते हैं। 'Server.MapPath ("~/Web.config") का उपयोग करना; 'XmlConfigurator को फ़ाइल में इंगित करता है। –

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