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

Logging Java Discussion :

[log4j/JDBCAppender] erreur à l'écriture dans la BDD


Sujet :

Logging Java

  1. #1
    Membre régulier Avatar de eracius
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    138
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 138
    Points : 81
    Points
    81
    Par défaut [log4j/JDBCAppender] erreur à l'écriture dans la BDD
    Bonjour,

    J'essaye de logger dans une base de données Mysql mais ça plante.

    En fait c'est bizarre parce qu'il me fait plein de lignes rouge pour m'expliquer que mon basard lui plait pas et pourtant ma base de données se remplit en partie.

    Pour info, mon appli est un serveur qui utilise Hibernate 3 et Spring.

    Code du log4j.properties :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    log4j.rootLogger=TRACE, monAppender
    log4j.appender.monAppender.layout=org.apache.log4j.PatternLayout
    log4j.appender.monAppender=org.apache.log4j.jdbc.JDBCAppender
    log4j.appender.monAppender.driver=com.mysql.jdbc.Driver
    log4j.appender.monAppender.URL=jdbc:mysql://localhost:3306/datalog
    log4j.appender.monAppender.user=root
    log4j.appender.monAppender.password=
    log4j.appender.monAppender.sql=INSERT INTO LOG4JTABLE VALUES ('%d', '%c', '%p', '%m')
    Erreur générée :

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    log4j:ERROR Failed to excute sql
    com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'id' nor 'name' specified - using generated bean name [org.springframework.transa' at line 1
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    	at java.lang.reflect.Constructor.newInstance(Unknown Source)
    	at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
    	at com.mysql.jdbc.Util.getInstance(Util.java:381)
    	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1031)
    	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:957)
    	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3376)
    	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3308)
    	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1837)
    	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1961)
    	at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2537)
    	at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1564)
    	at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1485)
    	at org.apache.log4j.jdbc.JDBCAppender.execute(JDBCAppender.java:178)
    	at org.apache.log4j.jdbc.JDBCAppender.flushBuffer(JDBCAppender.java:250)
    	at org.apache.log4j.jdbc.JDBCAppender.append(JDBCAppender.java:146)
    	at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:230)
    	at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:65)
    	at org.apache.log4j.Category.callAppenders(Category.java:203)
    	at org.apache.log4j.Category.forcedLog(Category.java:388)
    	at org.apache.log4j.Category.log(Category.java:853)
    	at org.apache.commons.logging.impl.Log4JLogger.debug(Log4JLogger.java:110)
    	at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseBeanDefinitionElement(BeanDefinitionParserDelegate.java:353)
    	at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parsePropertySubElement(BeanDefinitionParserDelegate.java:784)
    	at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parsePropertySubElement(BeanDefinitionParserDelegate.java:769)
    	at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parsePropertyValue(BeanDefinitionParserDelegate.java:759)
    	at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parsePropertyElement(BeanDefinitionParserDelegate.java:695)
    	at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parsePropertyElements(BeanDefinitionParserDelegate.java:584)
    	at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseBeanDefinitionElement(BeanDefinitionParserDelegate.java:494)
    	at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseBeanDefinitionElement(BeanDefinitionParserDelegate.java:341)
    	at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseBeanDefinitionElement(BeanDefinitionParserDelegate.java:310)
    	at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.processBeanDefinition(DefaultBeanDefinitionDocumentReader.java:235)
    	at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseDefaultElement(DefaultBeanDefinitionDocumentReader.java:151)
    	at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:130)
    	at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:90)
    	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:458)
    	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:353)
    	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:303)
    	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:280)
    	at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:185)
    	at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseDefaultElement(DefaultBeanDefinitionDocumentReader.java:145)
    	at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:130)
    	at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:90)
    	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:458)
    	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:353)
    	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:303)
    	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:280)
    	at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:185)
    	at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseDefaultElement(DefaultBeanDefinitionDocumentReader.java:145)
    	at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:130)
    	at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:90)
    	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:458)
    	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:353)
    	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:303)
    	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:280)
    	at org.springframework.beans.factory.xml.XmlBeanFactory.<init>(XmlBeanFactory.java:73)
    	at org.springframework.beans.factory.xml.XmlBeanFactory.<init>(XmlBeanFactory.java:61)
    	at execution.lanceur.main(lanceur.java:21)
    Malgré cette erreur donc, des messages de log sont enregistrés dans ma bdd (des DEBUG et des INFO). J'ai essayé de voir à quel moment ça foire et c'est en fait dès la construction de ma première factory.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    //lancement du serveur
    ClassPathResource res = new ClassPathResource("SocketContext.xml");
    // Notre fabrique SPRING permettant l'accès aux beans déclarés		
    XmlBeanFactory Socketfactory = new XmlBeanFactory(res);
    Voilà je vois pas trop quoi mettre d'autre, mon code marche très bien quand je fais afficher le log dans la console tout bêtement.

    Si vous avez une idée...

    Merci d'avance.

  2. #2
    Membre du Club
    Inscrit en
    Mars 2002
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2002
    Messages : 52
    Points : 54
    Points
    54
    Par défaut
    Je reponds même si ca fait longtemps que le message a été posté on ne sait jamais, si cela peut aider.

    Il semblerai donc qu'il faut pas ecrire le sql comme ce :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    log4j.appender.monAppender.sql=INSERT INTO LOG4JTABLE VALUES ('%d')
    Mais comme ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    log4j.appender.monAppender.sql=INSERT INTO LOG4JTABLE VALUES ("%d")
    En tout cas pour moi ca resoud le probleme.

  3. #3
    Membre régulier Avatar de eracius
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    138
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 138
    Points : 81
    Points
    81
    Par défaut
    Je ne vais pas avoir l'occasion de tester vu que j'ai changé de mode de fonctionnement depuis mais merci quand même ^^

Discussions similaires

  1. [MySQL] Erreur pour écriture dans BDD
    Par laissaAnn dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 03/05/2013, 15h47
  2. [ODBC] Erreur d'insertion dans la BDD
    Par thebarbarius dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 07/11/2010, 01h11
  3. Réponses: 3
    Dernier message: 05/05/2010, 00h45
  4. Trier un champ + écriture dans la bdd
    Par oranoutan dans le forum Langage SQL
    Réponses: 3
    Dernier message: 06/09/2007, 17h59
  5. [Conception] Problème avec l'écriture dans une BDD [Script de news]
    Par NeuroGen dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 02/07/2006, 19h08

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