2009-02-15 19 views
6

का उपयोग कर अतिरिक्त फ़ील्ड के साथ क्वेरी IIS लॉग I मेरे पास अतिरिक्त फ़ील्ड 'foo' के साथ आईआईएस लॉग है।लॉगपार्सर

#Fields: foo date s-sitename ... 
foo1 2009-02-15 W3SVC1 ... 
foo2 2009-02-15 W3SVC1 ... 

परिणाम के रूप में सभी LogParser प्रश्नों किया गया है:

logparser -i:IISW3C "SELECT c-ip, s-ip FROM my.log" 

Statistics: 
----------- 
Elements processed: 0 
Elements output: 0 
Execution time:  0.00 seconds 

यह इस तरह अतिरिक्त क्षेत्रों के बारे में सूचित करने के लिए LogParser, तो यह आईआईएस फ़ाइलें पार्स कर सकते हैं संभव है?

उत्तर

10

W3C प्रारूप (-i: W3C) आज़माएं।

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

जिस तरह से LogParser custom input formats का समर्थन करता है।

+0

मैं: W3C काम किया! 'Foo' मान पूछना भी संभव है। – alex2k8

+0

लॉग पार्सर डब्ल्यू 3 सी प्रारूप लोड बैलेंसर "चिपचिपापन" परीक्षण के लिए "एक्स-फॉरवर्ड-फॉर" हेडर के साथ काम करता है –

0

लॉगपर्सर के बारे में नहीं पता लेकिन यदि आप इसके साथ सफल नहीं हैं तो आप splunk को आजमा सकते हैं जो विभिन्न लॉग प्रारूपों को आसानी से संभालता है।

0

विकल्प का उपयोग करें- iHeaderFile अपने स्वयं के फ़ील्ड को परिभाषित करने के लिए। logparser -h अतिरिक्त inforamtion साबित करेगा

0

यह करना बहुत आसान है!

बस अपनी स्ट्रिंग के चारों ओर TRIM फ़ंक्शन का उपयोग करें। इस तरह, आप लॉग पार्सर क्वेरी में एक कस्टम अतिरिक्त फ़ील्ड के रूप में इच्छित स्ट्रिंग टाइप कर सकते हैं।

संदर्भ: http://logparserplus.com/Functions#function_TRIM

उदाहरण के लिए, मैं इस प्रश्न में यह कर (औसत और अधिकतम समय पुनः प्राप्त किये):

logparser -i:IISW3C -rtp:-1 -o:NAT -headers:OFF -iw:ON "SELECT TRIM('my-website-custom-extra-column-name.com') AS siteName, TRIM('foo-bar-custom-extra-column-name') AS fooBar, AVG(time-taken) As AverageTimeTaken, MAX(time-taken) As MaxTimeTaken, COUNT(*) As Hits, TO_LOWERCASE(cs-uri-stem) As Uri FROM C:\inetpub\yourwebsite.com\ex*.log TO c:\myOutputParsedLog.txt WHERE (Extract_Extension(To_Lowercase(cs-uri-stem)) IN ('aspx')) GROUP BY TO_LOWERCASE(cs-uri-stem) ORDER BY AverageTimeTaken DESC"