2009-02-15 6 views
6

J'ai un journal IIS avec un champ supplémentaire 'foo'.Interrogation des journaux IIS avec des champs supplémentaires à l'aide de LogParser

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

En conséquence, toutes les requêtes LogParser sont cassés:

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

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

Est-il possible d'informer LogParser sur ces champs supplémentaires, il peut donc analyser les fichiers IIS?

Répondre

10

Essayez format W3C (-i: W3C).

Si cela ne fonctionne pas et qu'il s'agit d'une analyse ponctuelle, vous pouvez créer un script pour supprimer cette colonne. S'il s'agit d'une activité en cours, vous pouvez envisager d'utiliser un format standard ou au moins de déplacer le champ supplémentaire jusqu'à la fin. En outre, LogParser prend en charge custom input formats.

+0

-i: W3C a fonctionné! Il est même possible d'interroger la valeur 'foo'. – alex2k8

+0

Le format W3C de Log Parser fonctionne avec l'en-tête «X-Forwarded-For» pour tester la «rigidité» de l'équilibreur de charge –

0

Ne sait pas à propos de LogParser mais si vous n'avez pas réussi avec cela, vous pouvez essayer splunk qui semble gérer les différents formats de journaux assez facilement.

0

option Utiliser -iHeaderFile pour définir vos propres champs. logparser -h prouvera inforamtion supplémentaires

0

Il est très facile à faire!

Utilisez simplement la fonction TRIM autour de votre chaîne. De cette façon, vous pouvez saisir n'importe quelle chaîne comme champ supplémentaire personnalisé dans une requête d'analyseur de journal.

Référence: http://logparserplus.com/Functions#function_TRIM

Par exemple, je le fais dans cette requête (utilisée pour récupérer le temps moyen et Max):

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"