2013-02-26 165 views
5

मुझे एक आंतरिक ऐप मिला है जो लॉगिंग के लिए log4net का उपयोग कर रहा है। मैं %LOCALAPPDATA%\Vendor\App\application.log पर लॉग उत्पन्न करना चाहता हूं। दुर्भाग्य से, log4net इसके बजाय %APPDATA% पर लॉग फ़ाइल बना रहा है। यह एक बड़ी समस्या नहीं है, क्योंकि हम वास्तव में यहां प्रोफाइलिंग का उपयोग नहीं करते हैं, लेकिन अगर मैं इससे बच सकता हूं तो मुझे अपने कोड में छोटी idiosyncrasies छोड़ना पसंद नहीं है।विंडोज XP और 7 पर% LOCALAPPDATA% को लिखने के लिए लॉग 4नेट को कॉन्फ़िगर कैसे करना चाहिए?

किसी स्थान पर लिखी गई फ़ाइल को कैसे प्राप्त किया जाए, इस पर कोई विचार है कि मैंने प्रोग्राम 4 के रूप में log4net को कॉन्फ़िगर किए बिना और XP के लिए पथ प्राप्त करने के लिए पिनवोक का उपयोग किए बिना निर्दिष्ट किया है? यदि यह काम नहीं कर रहा है, यह अर्थ होगा अपने वातावरण चर गलत है

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
    <file value="${LOCALAPPDATA}\Vendor\App\application.log" /> 
    <appendToFile value="true" /> 
    <rollingStyle value="Size" /> 
    <maxSizeRollBackups value="10" /> 
    <maximumFileSize value="100KB" /> 
    <staticLogFileName value="true" /> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%date [%thread] %-5level %logger%newline%message%newline" /> 
    </layout> 
</appender> 

उत्तर

6

:

यहाँ मेरी कॉन्फ़िग फ़ाइल का appender अनुभाग है अगर यह किसी भी मदद के लिए है।

लॉग 4नेट में एपडाटा या स्थानीयappdata को संभालने के लिए इसमें कुछ विशेष नहीं है। यह सब कॉल सिस्टम है। पर्यावरण। GETEnvironmentVariables() एक हैशटेबल वापस करने के लिए और जो भी मूल्य लौटाता है उसके आधार पर प्रतिस्थापन करता है।