|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : juin 2007 Messages : 309 ![]() |
Bonjour,
j'aimerai rediriger les logs (warn et error) dans un fichier externe (format texte) dans le but d'empêcher l'enchainement des jobs si une erreur se produit et de garder une trace écrite. Je n'ai pas réussi avec le logcatcher (en m'aidant de la documentation). Savez-vous comment faire cette manipulation ? Merci. |
|
|
00
|
|
|
#2 |
|
Membre éclairé
![]() |
Bonjour,
pour rediriger les logs dans un fichier j'utilise un tLogCatcher que je relie à un tFileOutputDelimited pour lequel je coche l'option "Append" afin qu'il n'écrase pas les messages précédents. |
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : juin 2007 Messages : 309 ![]() |
Merci ^^
|
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() Inscription : juin 2007 Messages : 309 ![]() |
Bonjour,
Comment insérer une ligne dans une table (avec un tMysqlRow) en cas d'erreur ? j'ai essayé de relier ça au tDie mais sans succès... Merci. |
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Benoit DurandConsultant en Business Intelligence Freelance Inscription : mars 2005 Messages : 817 ![]() |
Et à partir du tLogCatcher ça ne marche pas ?
|
|
|
00
|
|
|
#6 |
|
Membre du Club
![]() Inscription : juin 2007 Messages : 309 ![]() |
ça ne fonctionne pas top ; si il plante il m'ensère 5 ou 6 lignes comme quoi c'est OK
j'ai réalisé la structure suivante : ___________ifok tLogCatcher ---> tMysqlRow1 __________|iferror __________|---> tMysqlRow2 |
|
|
00
|
|
|
#7 | |
|
Membre éclairé
![]() |
Citation:
je ne pense pas qu'il faut utiliser une telle structure car le lien ifError ne sera jamais utilisé. Il faut plutôt utiliser un lien Main puis filtrer les lignes en passant par un tMap (par contre je ne connais pas par coeur les codes d'erreurs donc je ne sais pas quel filtre employer mais ça serait surement sur le champ code ou priority). Aussi s'il y a juste une insertion à faire pourquoi ne pas utiliser un tMysqlOutput plutôt qu'un tMysqlRow ? |
|
|
|
00
|
|
|
#8 |
|
Membre du Club
![]() Inscription : juin 2007 Messages : 309 ![]() |
merci de ta réponse. J'ai tout essayé... seulement voilà, si il n'y a pas d'erreur le tLogcatcher ne renvoie aucun code ; dans le second cas, je dois lancer un tMysqlRow qui contient une requête de la sorte :
"INSERT INTO STAT_JOURNAL(ID_JOURNAL,NUM_ALIM,COD_WF,DATE_EVT,TYP_EVT,LB_MESSAGE,COD_INFO,VAL_INFO) VALUES(NULL,"+context.getProperty("num_alim")+",'WF_CHRGT_DEBUT',NOW(),'ERREUR','Fin WF_CHRGT_DEBUT',NULL,NULL)" Mais il ne passe même pas dans le tMap
|
|
|
00
|
|
|
#9 |
|
Membre éclairé
![]() |
Si tu veux faire des logs du début et de la fin d'un job alors il faut utiliser un tStatCatcher. Si tu veux également avoir le début et la fin de l'éxecution d'un composant spécifique dans le job, alors il suffit de cocher tStatCatcher Statistics dans l'onglet Main de l'onglet Propriétés pour ce composant. Ainsi le tStatCatcher capturera le début et la fin de l'exécution du composant.
|
|
|
00
|
|
|
#10 |
|
Membre du Club
![]() Inscription : juin 2007 Messages : 309 ![]() |
Merci de ta réponse.
j'ai trouvé une autre solution, il ne me manque plus que de trouver un moyen de limiter le nombre de rows en sortie : sur mon lien main, j'ai 6 rows et je voudrais qu'il ne passe qu'une fois au maximum dedans. Est-ce possible ? |
|
|
00
|
|
|
#11 |
|
Membre éclairé
![]() |
Tu ne veux que la première ligne ?
Si c'est cela je connais une manière de faire, pas très propre mais qui fonctionne : il faut passer par un tUniqRow pour lequel aucun champ n'est déclaré comme Key Attribute dans la propriété Unique Key.Sinon je ne connais pas de méthode simple de le faire avec un composant proposé dans Open Studio. |
|
|
00
|
|
|
#12 |
|
Membre Expert
![]() Benoit DurandConsultant en Business Intelligence Freelance Inscription : mars 2005 Messages : 817 ![]() |
haha, c'est moi qui t'ai répondu sur le forum officiel (bedurand).
En fait ce doit être les mêmes personnes sur ce forum et le officiel mais sous des pseudos différents Pour limiter le nombre de lignes je n'ai pas de solution à te proposer immédiatement. Etant donné que j'ai le même problème si je trouve quelque chose je te répondrai sur http://www.talendforge.org/forum/viewtopic.php?id=1184 Mais en fait mon job d'insertion en cas d'erreur m'insère le bon nombre de lignes mais je reçois les mails en double |
|
|
00
|
|
|
#13 |
|
Membre du Club
![]() Inscription : juin 2007 Messages : 309 ![]() |
ça ne fonctionne pas avec le tUniqRow, j'ai bien laissé décoché toutes les key attributes et j'ai quand même 6 lignes en sortie
>Hebus_Beer le monde est petit ^^ |
|
|
00
|
|
|
#14 |
|
Membre éclairé
![]() |
Il faut compter le nombre de lignes "manuellement".
Pour cela, il faut déclarer une variable de contexte compteur de type int avec comme valeur par défaut 0. Ensuite il faut incrémenter cette variable à chaque message à l'aide d'un tJavaRow. Voici la structure que je propose : log.png Dans le tJavaRow, il y aurait : Code :
context.setProperty("compteur",new Integer(Integer.parseInt(((String)context.getProperty("compteur")))+1).toString()); Code :
Integer.parseInt(((String)context.getProperty("compteur"))) < 2 |
|
|
00
|
|
|
#15 |
|
Membre du Club
![]() Inscription : juin 2007 Messages : 309 ![]() |
Il ne passe pas dans les liens :
![]() L'erreur que je génère se situe dans le tSystem2 avec un "cd (...)" au lieu de "cmd (...)" |
|
|
00
|
|
|
#16 |
|
Membre éclairé
![]() |
En effet...je viens de tester (j'avais testé rapidement avec des tWarn) et j'ai le même problème
|
|
|
00
|
|
|
#17 |
|
Membre du Club
![]() Inscription : juin 2007 Messages : 309 ![]() |
Bon j'ai trouvé une solution ^^
un petit mix de tout ce qui a été dit précédemment : - Initialiser une variable de contexte en début de Job -> context.setProperty("cpt_err","0"); - Dans le tLogcatcher créé un lien main vers un tjavaRow et mettre le code suivant : context.setProperty("cpt_err",""+(Integer.parseInt(context.getProperty("cpt_err"))+1)); - Créer un lien "if" sur le tMysqlRow à partir du tLogcatcher avec le code suivant : Integer.parseInt(context.getProperty("cpt_err"))<2 Et miracle ^^ Bon, il y a moyen de faire plus propre mais bon Merci de votre aide. |
|
|
00
|
|
|
#18 | ||
|
Membre éclairé
![]() |
Citation:
.Citation:
).
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com