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

Hibernate Java Discussion :

Log4j et show_sql=true


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 68
    Par défaut Log4j et show_sql=true
    Bonjour à tous,

    voici mon petit problème : tout le monde sait que show_sql=true permet d'afficher les requêtes dans la console C'est très bien mais je souhaiterais pouvoir dévier le tout vers log4j... Je bosse dans un environnement spring, hibernate, struts.

    Log4j.properties
    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
     
    # Set options for a DailyRollingFileAppender
    # using at most one backup file. 
    log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.FILE.DatePattern='.'yyyy-MM-dd
    log4j.appender.FILE.File=c:/java/project/webf/webf.log
     
    # layout is a PatternLayout, using the conversion pattern
    # %d{ISO8601} %-5p %c{2} [%M.%L] %x - %m\n. Thus, the log output will
    # include date and time, followed by the level of the log request,
    # followed by the two rightmost components of the logger name,
    # followed by the callers method name, followed by the line number,
    # the nested diasgnostic context and finally the message itself.
    # Refer to the documentation of PatternLayout for further information
    # on the syntax of the ConversionPattern key.
    log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
    log4j.appender.FILE.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} [%M.%L] %x - %m\n
     
    # Root logger set to DEBUG using the FILE appender defined above.
    log4j.rootLogger=WARN, FILE
     
    # Print only messages of level WARN or above in the package org.apache.
    log4j.logger.org.apache=WARN
    log4j.logger.org.displaytag=WARN
    log4j.logger.org.hibernate=WARN
    log4j.logger.net.sf.hibernate=WARN
    log4j.logger.org.springframework=WARN
    log4j.logger.hibernate=WARN
    log4j.logger.springframework=WARN
    springcontext dans lequel on appelle hibernate

    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
     
    <bean id="hibernateSessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
    		<property name="dataSource">
    			<ref local="ds"/>
    		</property>
    		<property name="mappingResources">
    			<list>...
                </list>
    		</property>
    		<property name="hibernateProperties">
    			<props>
    				<prop key="hibernate.dialect">net.sf.hibernate.dialect.OracleDialect</prop>
    				<prop key="hibernate.query.substitutions">true=1 false=0</prop>
    				<prop key="hibernate.show_sql">${hibernate.showSql}</prop>
    			</props>
    		</property>
    	</bean>
    ${hibernate.showSql} était forcémment true/false

    Merci à tous ceux qui auront essayé ou réussi à m'aider.

    Coyote

  2. #2
    Membre chevronné

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 346
    Par défaut
    A ma connaissance ce n'est pas possible car Hibernate fait des System.out.
    La chose à faire est de rediriger depuis ton serveur d'application (si tu en utilise un) la console vers un fichier donner. Mais dans ce cas là c'est toute la console!

  3. #3
    Membre éclairé Avatar de dgouyette
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 75
    Par défaut
    Tu as essayé en mettant un logger à debug sur org.hibernate.type ?

    Normalement tu devrais y voir les requêtes SQL y passer

  4. #4
    Membre chevronné

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 346
    Par défaut
    Citation Envoyé par cestpasdur
    Tu as essayé en mettant un logger à debug sur org.hibernate.type ?
    Cela crée beacoup de débug mais pas le SQL.

    Comme je le disait, le SQL est généré via un System.out donc impossible de le mettre dans un log log4j

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 44
    Par défaut
    Bonjour,

    Si je ne dis pas de bêtise il est possible de mettre "org.hibernate.SQL" au niveau de log DEBUG. Et là tu y trouveras normalement ton bonheur sans avoir le reste des logs d'hibernate.

  6. #6
    Membre chevronné

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 346
    Par défaut
    Merci Reivon, ça marche!

    donc il faut mettre dans log4j.properties
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    log4j.logger.org.hibernate.SQL=DEBUG
    Et par contre dans hibernate.cfg.xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <property name="show_sql">false</property>
    Pour éviter que les requêtes SQL soient loggé deux fois!

Discussions similaires

  1. [Log4j]Cherche visualiseur de fichiers logs de log4j
    Par RolandB dans le forum Logging
    Réponses: 9
    Dernier message: 18/03/2009, 15h11
  2. [Tomcat 5.0][Log4j] Il devient fou !!!
    Par yolepro dans le forum Tomcat et TomEE
    Réponses: 9
    Dernier message: 24/04/2004, 21h08
  3. fichier de config: refuse tcpip_socket=true.
    Par phil25 dans le forum Installation
    Réponses: 1
    Dernier message: 04/01/2004, 15h55
  4. [EJB2.1 Entity] [BES] CreateException avec ejb.CacheCreate=true
    Par Bobby McGee dans le forum Java EE
    Réponses: 6
    Dernier message: 08/10/2003, 17h11
  5. Valeur par defaut 'True' dans un champ de type bit
    Par Mouse dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 24/03/2003, 15h26

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