Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2746 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  log4perl ???

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

log4perl ???

n°1889259
donny3
Posté le 29-05-2009 à 08:04:44  profilanswer
 

Bonjour,
 
Avec log4perl, il est possible d'avoir une log de nos traitement,dans un fichier de log.
Mais est-ce possible avec log4perl, de logger directement dans une base de donnée ?
 
 
Merci.

mood
Publicité
Posté le 29-05-2009 à 08:04:44  profilanswer
 

n°1889276
donny3
Posté le 29-05-2009 à 09:32:59  profilanswer
 

je viens de trouver,
c 'est avec cela :
Log::Log4perl::Appender::DBI --> Effectue la journalisation vers une base de données ;  
 
mais  
est -ce possible de faire une journalisation vers une base en plus de ma journalisation vers un file ???

n°1889279
donny3
Posté le 29-05-2009 à 09:47:20  profilanswer
 

apparamment c'est possible, il faut definir plusieurs appenders,
mais le truc que je n'arrive pas à trouver,
c'est ou et comment je lui indique la table dans laquelle il doit écrire ?
est-ce qu'il y a une structure defini de table ??
 

n°1889297
donny3
Posté le 29-05-2009 à 10:19:52  profilanswer
 

j'ai trouvé ceci,mais mais je comprend pas trop comment il font pour définir leur base ici name="datasource" value="DBI:CSV:f_dir=t/tmp"/ :
 

Code :
  1. <log4perl:appender name="DBAppndr2" class="Log::Log4perl::Appender::DBI">
  2.           <param name="warp_message" value="0"/>
  3.           <param name="datasource" value="DBI:CSV:f_dir=t/tmp"/>
  4.           <param name="bufferSize" value="2"/>
  5.           <param name="password" value="sub { $ENV{PWD} }"/>
  6.            <param name="username" value="bobjones"/>
  7.          
  8.           <param-text name="sql">insert into log4perltest (loglevel, message, shortcaller, thingid, category, pkg, runtime1, runtime2) values (?,?,?,?,?,?,?,?)</param-text>
  9.            <param-nested name="params">
  10.                 <param name="1" value="%p"/>
  11.                 <param name="3" value="%5.5l"/>
  12.                 <param name="5" value="%c"/>
  13.                 <param name="6" value="%C"/>
  14.            </param-nested>
  15.                
  16.            <layout class="Log::Log4perl::Layout::NoopLayout"/>
  17.        
  18. </log4perl:appender>

n°1889469
gilou
Modosaurus Rex
Posté le 29-05-2009 à 14:37:24  profilanswer
 

Citation :

DBI:CSV:f_dir=t/tmp


Tu dis que tu vas te connecter avec le driver DBI (Database Interaction Module) en mode CSV (Comma Separated Values) sur le répertoire t/tmp
les fichiers au format csv  de ce repertoire vont être traités comme la base de données.
A+,


---------------
There's more than what can be linked! --  Le capitaine qui ne veut pas obéir à la carte finira par obéir aux récifs. -- Il ne faut plus dire Sarkozy, mais Sarkozon -- (╯°□°)╯︵ ┻━┻
n°1889500
donny3
Posté le 29-05-2009 à 14:58:47  profilanswer
 

en faite
c est pas vraiment a une base de donnée qu'on se connecte  
on utilise DBI pour faire du CSV
moi je pensai qu'on pouvait directement acceder a une base avec log4perl

n°1889572
gilou
Modosaurus Rex
Posté le 29-05-2009 à 16:35:49  profilanswer
 

Mais tu peux tout a fait, il te suffit d'utiliser un autre driver DBI que le driver CSV.
C'est pas ce qui manque: http://search.cpan.org/search?quer [...] ode=module
A+,


---------------
There's more than what can be linked! --  Le capitaine qui ne veut pas obéir à la carte finira par obéir aux récifs. -- Il ne faut plus dire Sarkozy, mais Sarkozon -- (╯°□°)╯︵ ┻━┻
n°1895515
donny3
Posté le 16-06-2009 à 09:57:07  profilanswer
 

j'arrive pas à visualiser ou trouver une synthaxe qui se connecte à une base oracle
 
<param name="datasource" value="DBI:DBD::ORACLE .??

n°1895754
gilou
Modosaurus Rex
Posté le 16-06-2009 à 14:49:06  profilanswer
 

http://oreilly.com/catalog/perldbi/chapter/ch04.html
 
A+,


---------------
There's more than what can be linked! --  Le capitaine qui ne veut pas obéir à la carte finira par obéir aux récifs. -- Il ne faut plus dire Sarkozy, mais Sarkozon -- (╯°□°)╯︵ ┻━┻
n°1895795
donny3
Posté le 16-06-2009 à 16:31:10  profilanswer
 

merci si pour ton lien
se connecter a une base en dbi je sais faire,
ce que je ne sais pas, c'est la synthaxe avec log4perl

mood
Publicité
Posté le 16-06-2009 à 16:31:10  profilanswer
 

n°1895975
gilou
Modosaurus Rex
Posté le 17-06-2009 à 00:00:37  profilanswer
 

Certes, mais la page en question fournissait ce script, qui aurait du te permettre de trouver la syntaxe correcte pour ta datasource, puisque c'est ce qui semble être ton problème.
 

Code :
  1. #!/usr/bin/perl -w
  2. #
  3. # ch04/listdsns: Enumerates all data sources and all installed drivers
  4. #
  5. use DBI;
  6.  
  7. ### Probe DBI for the installed drivers
  8. my @drivers = DBI->available_drivers();
  9.  
  10. die "No drivers found!\n" unless @drivers; # should never happen
  11.  
  12. ### Iterate through the drivers and list the data sources for each one
  13. foreach my $driver ( @drivers ) {
  14.    print "Driver: $driver\n";
  15.    my @dataSources = DBI->data_sources( $driver );
  16.    foreach my $dataSource ( @dataSources ) {
  17.        print "\tData Source is $dataSource\n";
  18.    }
  19.    print "\n";
  20. }
  21.  


 
A+,


---------------
There's more than what can be linked! --  Le capitaine qui ne veut pas obéir à la carte finira par obéir aux récifs. -- Il ne faut plus dire Sarkozy, mais Sarkozon -- (╯°□°)╯︵ ┻━┻
n°1960151
donny3
Posté le 25-01-2010 à 09:59:18  profilanswer
 

de retour,enfin libre
par contre je n'ai toujours pas avançer sur ce chantier.
est-ce que quelqu un pourrait m'aider
a configurer le fichier log4perl pour que je puisse logger certains message dans une base de donnée

n°1960192
gilou
Modosaurus Rex
Posté le 25-01-2010 à 12:48:09  profilanswer
 

Ben avec le script que je t'ai donné, tu arrives a trouver la bonne datasource?
A+,


---------------
There's more than what can be linked! --  Le capitaine qui ne veut pas obéir à la carte finira par obéir aux récifs. -- Il ne faut plus dire Sarkozy, mais Sarkozon -- (╯°□°)╯︵ ┻━┻
n°1960208
donny3
Posté le 25-01-2010 à 13:48:38  profilanswer
 

je sais pas si tu vois comment est le fichier log4perl.xml
mais je vois pas comment integrer le code que tu ma donnée dedans.
 
faire une connexion a une base, inserer , recuperer je sais faire.
mais si dans chaque script je dois faire une connexion a la base pour inserrer des donnée dedans, le log4perl me sert a rien.
 
pour logger mes message je fais un $prod_loger...
et je met le message de $err_log->fatal et sa me le met dans un fichier de log defini dans le log4perl.
moi ce que je souhaiterai savoir , c'est existent il une solution fourni pas log4perl pour logger dans une base et non un fichier

n°1960249
gilou
Modosaurus Rex
Posté le 25-01-2010 à 16:15:15  profilanswer
 

donny3 a écrit :

je sais pas si tu vois comment est le fichier log4perl.xml
mais je vois pas comment integrer le code que tu ma donnée dedans.
 
faire une connexion a une base, inserer , recuperer je sais faire.
mais si dans chaque script je dois faire une connexion a la base pour inserrer des donnée dedans, le log4perl me sert a rien.


Ben quelque part, il faut au moins que tu fasse  
Log::Log4perl->init("log4perl.conf" );
pour démarrer Log4perl
Ensuite, dans tes scripts, il faut que tu fasses  
my $food_logger = get_logger("xxxx" );
pour créer un logger
et tu traces ce dont tu as besoin
si ton log4perl.conf est bien fait, avec un appender de type DB (ou DBI, je sais plus) bien paramétré, tu devrais logger dans la BDD sans avoir a faire une connexion pour chaque script.

Citation :

je sais pas si tu vois comment est le fichier log4perl.xml

 
Bon évidement, tout ça est en perl pur, a toi de transposer dans ce que tu fais (du CGI?) parce que la, c'est plus du perl, mais un trux xml-ifié.
A+,


Message édité par gilou le 25-01-2010 à 16:16:29

---------------
There's more than what can be linked! --  Le capitaine qui ne veut pas obéir à la carte finira par obéir aux récifs. -- Il ne faut plus dire Sarkozy, mais Sarkozon -- (╯°□°)╯︵ ┻━┻
n°1960252
donny3
Posté le 25-01-2010 à 16:49:01  profilanswer
 

c'est du perl pure
sauf que mon fichier log4perl est un log4perl.xml
 
c est bien cela je dois rajouter un appender de type base de donnée
comme sa je loggerai dans la base et dans le fichier log.

n°1960308
gilou
Modosaurus Rex
Posté le 25-01-2010 à 19:58:19  profilanswer
 

Citation :

sauf que mon fichier log4perl est un log4perl.xml

C'est le fichier de configuration.
C'est ce que je ne pige pas: si tu fais du perl pur, pourquoi avoir un tel fichier en xml; il y a une raison précise?
Parce que passer par un log4perl.conf ecrit comme un fichier texte semblerait plus simple (et est bien mieux documenté)
Et tu l'appeles bien a travers un Log::Log4perl->init("log4perl.xml" );?
La doc du fichier xml devrait être explicitée dans la documentation du module Log::Log4perl::Config::DOMConfigurator, mais ce n'est pas un truc dont je me sois servi.
A+,
 
 


---------------
There's more than what can be linked! --  Le capitaine qui ne veut pas obéir à la carte finira par obéir aux récifs. -- Il ne faut plus dire Sarkozy, mais Sarkozon -- (╯°□°)╯︵ ┻━┻
n°1988432
donny3
Posté le 28-04-2010 à 14:57:43  profilanswer
 

je viens de trouver cette doc
 
http://log4perl.sourceforge.net/re [...] rator.html
 
j'ai essayé ce qu'il proposait,
<param name="datasource" value="DBI:CSV:f_dir=t/tmp"/>
par contre je ne pije pas trop à quelle base il se connecte et donc quand je le lance,
rien ne se passe,
 
du coup j'ai modifier le datasource comme ceci , afin de pouvoir lui preciser la base que je souhaite utiliser  
 
<param name="datasource" value="DBI:Oracle:RPBASE_TEST"/>
 
et il ne se passe toujours rien,
 
je ne comprend pas

n°1988527
gilou
Modosaurus Rex
Posté le 28-04-2010 à 20:45:54  profilanswer
 

On se demande vraiment pourquoi je t'ai posté un script perl qui énumère les data sources telles que connues par ton système.
A+,


---------------
There's more than what can be linked! --  Le capitaine qui ne veut pas obéir à la carte finira par obéir aux récifs. -- Il ne faut plus dire Sarkozy, mais Sarkozon -- (╯°□°)╯︵ ┻━┻
n°1988582
donny3
Posté le 29-04-2010 à 08:20:52  profilanswer
 

Gilou merci pour ton script
mais il ne s'applique pas à mon cas
j'utilise log4perl.xml  

n°1988658
gilou
Modosaurus Rex
Posté le 29-04-2010 à 12:04:45  profilanswer
 

Ce qui ne change rien a l'histoire:
Il faut bien que tu vérifies si la manière dont tu nommes ta source est celle connue par le système, et le script est la pour cela.
D'autre part, comme je te l'avais indiqué (a se demander si tu lis mes réponses) log4perl.xml est un fichier de configuration. Mais tu n'as pas indiqué, alors que je te le demandais, de quelle manière tu mets en jeu log4perl afin qu'il utilise ce fichier de config.
A+,


---------------
There's more than what can be linked! --  Le capitaine qui ne veut pas obéir à la carte finira par obéir aux récifs. -- Il ne faut plus dire Sarkozy, mais Sarkozon -- (╯°□°)╯︵ ┻━┻
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  log4perl ???

 

Sujets relatifs
log4perl 
Plus de sujets relatifs à : log4perl ???


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)