2010-10-14 11 views
26

मेरी ज़रूरत सरल है - मैं एक्सेल में अपनी टेक्स्ट लॉग फ़ाइल खोलने में सक्षम होना चाहता हूं, ताकि यह स्वचालित रूप से लॉग फ़ील्ड से मेल खाने वाले कॉलम में इसे तोड़ दे।मैं लॉग 4नेट लेआउट पैटर्न में टैब कैसे डालूं?

इसके लिए, मुझे एक टैब से अलग लॉग फ़ील्ड की आवश्यकता है।

मेरे पैटर्न है: %utcdate%tab[%thread]%tab%-5level%tab%logger%tab%message%newline

धन्यवाद: %utcdate [%thread] %-5level %logger - %message%newline

मैं की तरह कुछ की जरूरत है।

उत्तर

40

चेतावनी: मैंने वास्तव में log4net का उपयोग नहीं किया है। लेकिन अगर मैं सही ढंग से समझता हूं, तो विन्यास एक एक्सएमएल फाइल है, है ना? और पैटर्न कुछ विशेष टोकन के साथ बस पाठ है। तो क्या आपने अपने पैटर्न में वास्तविक टैब वर्ण एम्बेड करने का प्रयास किया है? एक टैब के लिए एक्सएमएल अनुक्रम 	 है, जैसे:

<conversionPattern value="%utcdate&#9;[%thread]&#9;%-5level&#9;%logger&#9;%message%newline" /> 

या आप पैटर्न किसी अन्य तरह से आपूर्ति कर रहे हैं (शायद PatternString constructor या जो कुछ भी) के माध्यम से, बस स्ट्रिंग आप में गुजर रहे हैं में टैब वर्ण शामिल । कि निर्माता के लिये दस्तावेज स्वयं स्ट्रिंग के बारे में बात करने के लिए PatternLayout डॉक्स स्थगित, और there they say:

आप रूपांतरण पैटर्न के भीतर किसी भी शाब्दिक पाठ सम्मिलित करने के लिए स्वतंत्र हैं।

(उनके जोर।) वर्थ एक कोशिश, वैसे भी ...

+2

धन्यवाद। \ t काम नहीं करता है, लेकिन वास्तव में काम करता है। – mark

+0

@mark: अच्छा सौदा, खुशी हुई जिसने मदद की। –

0

यदि यह एक्सेल के बारे में है तो आप किसी अन्य विभाजक का उपयोग कर सकते हैं, शायद ; भी पर्याप्त होगा।

एक और विकल्प अपना खुद का पैटर्न कनवर्टर लिखना होगा। एक उदाहरण here पाया जा सकता है।

+0

नहीं टाइप करना होगा, यह केवल एक्सेल के लिए नहीं है। फ़ाइल मानव पठनीय रहना चाहिए। – mark

+0

फिर विकल्प 2 के लिए जाएं। जहां तक ​​मैं बता सकता हूं कि log4net वर्तमान में आप जो चाहते हैं वह करने में सक्षम नहीं है। –

6

यह मेरे लिए काम किया:

log4net.GlobalContext.Properties["tab"] = "\t"; 
:

1) जब अपने प्रवेश वर्ग instantiated है, इस लाइन को जोड़ने

2) फिर लॉग 4नेट एक्सएमएल में, अपनी नव निर्मित लॉग 4नेट प्रॉपर्टी का संदर्भ लें। उदाहरण के लिए:

<conversionPattern value="%property{tab}%message%newline" /> 
+0

यह समाधान मेरे लिए बेहतर काम करता है क्योंकि मैं xml ट्रांसफॉर्म को log4net.xml (slowcheeath के साथ) पर लागू करता हूं, और यह को वापस टैब वर्ण में परिवर्तित करता है। – BernardV

0

आप भागने के बिना पैटर्न में टैब टाइप कर सकते हैं (स्तर और तारीख के बीच की जगह देखें):

<conversionPattern value="%level %date{HH:mm:ss,fff} ..." /> 

मैं, दृश्य स्टूडियो में टैब बारे में नहीं कर सकते क्योंकि यह रिक्त स्थान लिखते हैं, लेकिन मैंने नोटपैड ++ में टैब टाइप किया है (ctrl + c ctrl + v) और यह काम कर रहा है।

संपादित करें: स्टैक ओवरफ़्लो ने मेरे टैब को रिक्त स्थान के साथ बदल दिया। तो आपको अपना खुद का टैब

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