IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL*Loader Oracle Discussion :

Charger des logs tomcat


Sujet :

SQL*Loader Oracle

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    février 2007
    Messages
    196
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : février 2007
    Messages : 196
    Points : 106
    Points
    106
    Par défaut Charger des logs tomcat
    Bonjour

    Je travaille sur la mise en base oracle de logs tomcat, histoire de faire tout un tas de graphes de temps de réponse par URL, IP etc via Business Object.

    Je vous explique rapidement mes petits soucis avant un copier/coller de mon .ctl pour avoir vos avis.
    - ORA-01843: ce n'est pas un mois valide. Peut être parce que je tente de récupérer une date DD/MON/RRRR dont le MON est en anglais? Comment mettre quelquechose comme "NLS_LANGUAGE = FRENCH" dans un .ctl?
    - Toujours sur la date, comment prendre en compte (ou ignorer je n'en ai pas besoin) le GMT +0200? TZHTZM, TZH, TZM ça n'est pas reconnu
    - colonne REFERER. Premier caractère d'encadrement introuvable. Est ce qu'un "enclosed in" peut comporter plus d'une lettre?

    Voici le .ctl
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    -- Loading tomcat access log in database
     
    OPTIONS (ERRORS=1000)
    LOAD DATA
     
    -- INFILE '/statlog/appli/sites/dnez/prod/access.2013-04-22.log' 
    -- BADFILE '/statlog/appli/chgt/access.2013-04-22.bad'
    -- DISCARDFILE '/statlog/appli/chgt/access.2013-04-22.dsc'
    INFILE 'D:\travail\statLog\access.2013-04-06.log' 
    BADFILE 'D:\travail\statLog\access.2013-04-06.bad'
    DISCARDFILE 'D:\travail\statLog\access.2013-04-06.dsc'
     
     
    INTO TABLE "STATLOG"."LIGNELOG3"
    FIELDS terminated by whitespace
    (
    	codeeh			CONSTANT	'DNEZ',
    	appli			CONSTANT	'SILL',
    	env				CONSTANT	'PROD',
    	datefichierlog	CONSTANT	'22/04/2013',
    	idlignelog		SEQUENCE(MAX,1),
    	ipclient		CHAR,
    	ipclient2		CHAR		NULLIF (ipclient2='-'),
    	utilisateur		CHAR		NULLIF (utilisateur='-'),
    	datereponse		DATE		'DD/MON/RRRR:HH24:MI:SS' enclosed by '[' and ']',
    	methode			CHAR,
    	url				CHAR,
    	protocole		CHAR,
    	codehttp		INTEGER,
    	taille			INTEGER,
    	duree			INTEGER,	
    	referer			CHAR		 enclosed by 'Referer=[' and ']' NULLIF (referer='-') 
    )
    Et quelques lignes de log pour l'exemple (aux URLs un peu massacré pour des raisons de confidentialité, désolé)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    10.10.41.3 - - [06/Apr/2013:00:00:21 +0200] POST /sillaacer HTTP/1.1 200 90 62 Referer=[http://52001/soleur.jsp]
    10.10.41.29 - - [06/Apr/2013:00:00:22 +0200] GET /sillchirSession.jsp?message= HTTP/1.1 200 7 0 Referer=[-]
    10.10.40.143 - - [06/Apr/2013:00:00:22 +0200] POST /m9222521 HTTP/1.1 200 872 168 Referer=[http://piur.jsp]
    10.10.41.3 - - [06/Apr/2013:00:00:23 +0200] GET /f2261%23217824nez&typeStruct=UF HTTP/1.1 200 75057 925 Referer=[http://pinleur.jsp]
    10.10.40.143 - - [06/Apr/2013:00:00:23 +0200] POST /me65199223224 HTTP/1.1 200 872 165 Referer=[http://pintoleur.jsp]
    Merci d'avance!

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    février 2007
    Messages
    196
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : février 2007
    Messages : 196
    Points : 106
    Points
    106
    Par défaut
    Le problème du Referer est réglé, le INTEGER des champs durée et taille renvoyaient des trucs bizarres. Ca marche avec CHAR... well, ok.

    Je suis toujours preneur d'aide/suggestion pour les formats de date. Le problème c'est clairement la langue:
    - Je remplace Apr par Avr.
    - J'inclu le +0200 dans le 'enclosed by'
    Et ça marche. Je suis quand même forcé à un pré-traitement, c'est pas vraiment idéal

  3. #3
    Expert confirmé
    Profil pro
    Inscrit en
    août 2008
    Messages
    2 893
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2008
    Messages : 2 893
    Points : 5 699
    Points
    5 699
    Par défaut
    Il faut appliquer une transformation sur la date dans le fichier de contrôle, dans ce genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SQL> with t as (
      2  select '[06/Apr/2013:00:00:21 +0200]' c from dual
      3  )
      4  select to_date(substr(c,2,instr(c,' ')-2),'DD/Mon/YYYY:HH24:MI:SS','nls_date_language=''ENGLISH''') as dte
      5    from t;
     
    DTE
    --------
    06/04/13
     
    SQL>
    Sinon utiliser une table externe.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    février 2007
    Messages
    196
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : février 2007
    Messages : 196
    Points : 106
    Points
    106
    Par défaut
    Parfait, merci skuatamad, en bricolant ce que tu m'as donné ça passe.

    Pour référence, le ctl fonctionnel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    OPTIONS (ERRORS=100)
    LOAD DATA
     
    INFILE 'D:\travail\statLog\access.2013-04-06.log' 
    BADFILE 'D:\travail\statLog\access.2013-04-06.bad'
    DISCARDFILE 'D:\travail\statLog\access.2013-04-06.dsc'
     
    TRUNCATE INTO TABLE "STATLOG"."LIGNELOG3"
    FIELDS terminated by whitespace
    (
    	codeeh		CONSTANT	'DOUARN',
    	appli			CONSTANT	'SILLAGE',
    	env			CONSTANT	'PROD',
    	datefichierlog	CONSTANT	'22/04/2013',
    	idlignelog		SEQUENCE(MAX,1),
    	ipclient		CHAR,
    	ipclient2		CHAR		NULLIF (ipclient2='-'),
    	utilisateur		CHAR		NULLIF (utilisateur='-'),
    	datereponse	DATE		enclosed by '[' and ' +0200]' "to_date(:datereponse,'DD/MON/RRRR:HH24:MI:SS','nls_date_language=''ENGLISH''')",
    	methode		CHAR,
    	url			CHAR(2000),
    	protocole		CHAR,
    	codehttp		CHAR,
    	taille			CHAR		NULLIF (taille='-'),
    	duree			CHAR,
    	referer		CHAR(2000)	enclosed by 'Referer=[' and ']' NULLIF (referer='-')
    )

Discussions similaires

  1. Réponses: 8
    Dernier message: 13/02/2013, 00h35
  2. absence des logs tomcat et access log
    Par toine62 dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 23/06/2009, 16h33
  3. affichage des logs Tomcat dans console
    Par gloglo dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 29/01/2009, 16h42
  4. Deplacer le repertoire des logs de Tomcat 5.5.26
    Par pcouas dans le forum Tomcat et TomEE
    Réponses: 4
    Dernier message: 22/10/2008, 19h32
  5. Charger des paramètres à partir de beans
    Par lalakers dans le forum ANT
    Réponses: 1
    Dernier message: 19/05/2004, 18h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo