NLog

2010-01-04 14 views
43

मेरे NLog लक्ष्यों में AppData स्थान का उपयोग कर इस तरह है:NLog

<targets> 
    <target xsi:type="Console" name="console" 
    layout="${longdate}|${level}|${message}" /> 
    <target xsi:type="File" name="ErrorLog" fileName="${basedir}/error.txt" 
      layout="${longdate} 
      Trace: ${stacktrace} 
      ${message}" /> 
    <target xsi:type="File" name="AccessLog" fileName="${basedir}/access.txt" 
      layout="${shortdate} | ${message}" /> 
</targets> 

लेकिन इस समस्याओं का कारण बनता है, तो उपयोगकर्ता अपने मशीन पर एक व्यवस्थापक नहीं है, क्योंकि वे "प्रोग्राम फ़ाइलें" के लिए लेखन पहुँच नहीं होगा । मैं बेसडीर के बजाय %AppData% जैसे एनएलओजी कैसे प्राप्त कर सकता हूं?

उत्तर

69

आप NLog special folders खोज रहे हैं।

उदाहरण:

...fileName="${specialfolder:folder=ApplicationData}/Program/file.txt"... 
+0

हाँ, लेकिन मैं इसका उपयोग कैसे करूं? मैंने पहले से ही कोशिश की है, fileName = "$ {ApplicationData} /RentalEase/access.txt" और यह चुपचाप विफल हो जाता है। – Malfist

+0

मुझे अपने सिर के ऊपर से याद नहीं है, लेकिन यह इस तरह दिखना चाहिए: $ {specialfolder: folder = SPECIALFOLDERNAME} –

+0

यह काम नहीं करता है, कहता है कि यह अमान्य है। – Malfist

4

$ {specialfolder: ApplicationData} भी काम करता है

10

Oren के जवाब सही जवाब होना चाहिए। हालांकि, मेरे जीवन के लिए मैं इसे एनएलओजी 2.0.0.0 का उपयोग कर अपनी .NET 4.0 वेबसाइट के साथ काम नहीं कर सका। मैं बस

fileName="${basedir}app_data\logs\${shortdate}.log" 
+0

प्रश्न शीर्षक "ऐपडाटा" का उपयोग करता है लेकिन मुझे नहीं लगता कि {..AplicationData} को App_Data में मैप किया गया है, मुझे डबल चेक करने के लिए स्रोत को पढ़ना होगा। –

+1

यह प्रश्न और स्वीकृत उत्तर विंडोज विशेष फ़ोल्डर% एपडाटा%, आमतौर पर सी: \ उपयोगकर्ता \ \ AppData \ रोमिंग के बारे में है। ऐसा लगता है कि ASP.net App_Data फ़ोल्डर के लिए कोई विशेष चर नहीं है। – angularsen

0

पिछले उत्तरों की समस्या को हल करने में मदद मिली, लेकिन कुछ साल बाद और समाधान अब v4.3 के तहत कुछ अलग है। निर्देशिका और फ़ाइल नाम पथ के साथ संयुक्त होते हैं।

@ theGecko के लिंक अभी भी वाक्य रचना के लिए वर्तमान है, लेकिन पेज एक उदाहरण की कमी है:

https://github.com/nlog/NLog/wiki/Special-Folder-Layout-Renderer

निम्न उदाहरण मौजूदा उपयोगकर्ताओं अनुप्रयोग डेटा निर्देशिका C:\USers\current.user\AppData\Roaming\My\Path\Somewhere रोमिंग के लिए फ़ाइल myLog.log लिखना होगा:

fileName="${specialfolder:dir=My/Path/Somewhere/:file=myFile.log:folder=ApplicationData}" 
संबंधित मुद्दे