La configuration d'Hibernate journalisation à l'aide de Log4j fichier de configuration XML?
Je n'ai pas été en mesure de trouver toute la documentation sur la façon de configurer Hibernate de l'enregistrement en utilisant le style XML fichier de configuration de Log4j.
Est-ce possible ou dois-je utiliser une des propriétés de style de fichier de configuration pour le contrôle de Hibernate exploitation forestière?
Si quelqu'un a des informations ou des liens vers de la documentation, il serait apprécié.
EDIT:
Juste pour préciser, je suis à la recherche d'un exemple de la syntaxe XML de contrôle de la mise en veille prolongée.
EDIT2:
Voici ce que j'ai dans mon fichier de configuration XML.
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Threshold" value="info"/>
<param name="Target" value="System.out"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ABSOLUTE} [%t] %-5p %c{1} - %m%n"/>
</layout>
</appender>
<appender name="rolling-file" class="org.apache.log4j.RollingFileAppender">
<param name="file" value="Program-Name.log"/>
<param name="MaxFileSize" value="1000KB"/>
<!-- Keep one backup file -->
<param name="MaxBackupIndex" value="4"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %l - %m%n"/>
</layout>
</appender>
<root>
<priority value ="debug" />
<appender-ref ref="console" />
<appender-ref ref="rolling-file" />
</root>
</log4j:configuration>
Journalisation fonctionne très bien mais je suis à la recherche d'un moyen de descendre et de contrôle de la mise en veille prolongée la journalisation de façon à les séparer de ma demande de connexion au niveau de l', comme c'est le cas actuellement inondations mes journaux. J'ai trouvé des exemples de l'utilisation du fichier de préférences pour ce faire, je me demandais juste comment je peux faire cela dans un fichier XML.
- nemo, ne ypu jamais trouver comment faire cela le xml? Vous pourriez peut-être poster une réponse à votre question si vous l'avez fait.
- homaxto, je l'ai fait. Je post pour vous une fois que je reçois une chance.
- <appender-ref ref="console" /> est-ce que la veille prolongée journal goto également à la catalina.hors, vous devriez commentaire de cette balise, si vous ne voulez pas voir la catalina.pleine de hibernate journaux
Vous devez vous connecter pour publier un commentaire.
De http://docs.jboss.org/hibernate/core/3.3/reference/en/html/session-configuration.html#configuration-logging
Voici la liste des enregistreur catégories:
Formaté pour le coller dans un log4j fichier de configuration XML:
NB: la Plupart des enregistreurs utiliser le niveau de DÉBOGAGE, cependant org.mise en veille prolongée.type utilise TRACE. Dans les versions précédentes de Hibernate org.mise en veille prolongée.type également utilisé DEBUG, mais comme d'Hibernate 3, vous devez définir le niveau de TRACE (ou TOUS) afin de voir le JDBC liaison des paramètres de journalisation.
Et une catégorie est spécifié en tant que tel:
Il doit être placé à l'avant de l'élément racine.
org.hibernate.engine.transaction
. Voir: docs.jboss.org/hibernate/orm/4.2/devguide/en-US/html/...L
, par exemple,<Logger name="org.hibernate.SQL" level="debug" />
effectivement être en majuscule? J'obtiens une erreur dans Tomcat au démarrage lors de la mise en majuscule de la L:"The content of element type 'log4j:configuration' must match '(renderer*,throwableRenderer*,appender*,plugin*,(category|logger)*,root?,(categoryFactory|loggerFactory)?)'."
. Je suis aussi confus au sujet de la façon dont cela devrait effectivement être entrée dans ma log4j.xml fichier. Dois-je avoir une<logger>
bloc pour chaque catégorie, avec le<level>
balises, ou puis-je obtenir loin avec le one-liners de vous présenté?Loki's réponse points d'Hibernate 3 docs et fournit de bonnes informations, mais je n'étais toujours pas obtenir les résultats que j'attendais.
Bien raclée, en agitant des bras et des généraux morts souris fonctionne finalement atterri moi mon fromage.
Parce que Hibernate 3 est à l'aide de La Journalisation Simple Façade pour Java (SLF4J) (pour les docs), si vous êtes en s'appuyant sur Log4j 1.2 vous aussi besoin de la slf4j-log4j12-1.5.10.jar si vous êtes désireux de entièrement configurer Hibernate enregistrement d'un fichier de configuration log4j. Espérons que cela aide le gars à côté.
En réponse à homaxto commentaire, c'est ce que j'ai en ce moment.
La clé de la partie
Espère que cette aide.
Voici ce que j'utilise:
Évidemment, je n'aime pas à voir Hibernate messages 😉 -- de définir le niveau de "debug" pour obtenir la sortie.
Les réponses ont été utiles. Après le changement, je l'ai eu en double enregistrement des instructions SQL, l'un dans le log4j fichier journal et une sur le standard de la console. J'ai changé le persistence.xml fichier à-dire show_sql à false pour se débarrasser de la journalisation de la console standard. En gardant format_sql vrai affecte également la log4j fichier journal, j'ai donc gardé que le vrai.
Vous pouvez configurer votre
log4j
fichier avec la catégorie de la balise comme ceci (avec une console appender pour l'exemple):De sorte que chaque avertissement, erreur ou un message fatal de mise en veille prolongée sera affiché, rien de plus. Aussi, votre code et le code de bibliothèque sera au niveau de l'info (donc, info, warn, error et fatal)
Pour modifier le niveau de journal d'une bibliothèque, il suffit d'ajouter une catégorie, par exemple, à desactive printemps info journal:
Ou avec un autre appender, briser l'additivité (additivité valeur par défaut est true)
Et si vous ne voulez pas que hibernate journal chaque requête, définissez la propriété hibernate
show_sql
àfalse
.