36 votes

Où voir les instructions sql enregistrées dans play2 ?

J'ai découvert qu'il existe une telle configuration dans application.conf :

# If enabled, log SQL statements being executed.
db.default.logStatements=true

Je l'ai activé, mais je ne trouve aucun fichier journal qui enregistre les requêtes exécutées.

Où puis-je le trouver, ou ai-je manqué quelque chose ?

57voto

Freewind Points 31162

1. application.conf

assurez-vous :

db.default.logStatements=true

Cette configuration est en fait un paramètre de bonecp qui est le pool de connexion utilisé dans play2.

2. enregistreur personnalisé

Ajouter une configuration de collecteur personnalisée à conf/logger.xml .

Le contenu peut être :

<configuration>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%-5level - %msg%n</pattern>
        </encoder>
    </appender>

    <logger name="com.jolbox.bonecp" level="DEBUG">
        <appender-ref ref="STDOUT" />
    </logger>

    <logger name="play" level="DEBUG">
        <appender-ref ref="STDOUT" />
    </logger>

    <logger name="application" level="DEBUG">
        <appender-ref ref="STDOUT" />
    </logger>

</configuration>

Le site com.jlbox.bonecp est pour bonecp y play y application sont pour le jeu2.

3. désactivez les paramètres de journalisation dans application.conf

Commentez les paramètres de l'enregistreur dans application.conf :

# Logger
# ~~~~~
# You can also configure logback (http://logback.qos.ch/), by providing a logger.xml file in the conf directory .

# Root logger:
# logger.root=ERROR

# Logger used by the framework:
# logger.play=INFO

# Logger provided to your application:
# logger.application=DEBUG

Redémarrez le jeu, et vous verrez tous les SQLs exécutés (y compris les valeurs des paramètres).

6voto

Curious Points 101

Cela ne fonctionne plus dans Play 2.4.2 d'après ce que je peux dire. Le moteur de pool de connexion par défaut a été remplacé par HikariCP.

Ajoutez ceci à votre application.conf et suivez les instructions ci-dessous. Tout devrait fonctionner :

Application.conf

db.default.pool = "bonecp"
db.default.bonecp.logStatements=true

conf/logger.xml Ajoutez une configuration de journal personnalisée à conf/logger.xml.

<configuration>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%-5level - %msg%n</pattern>
        </encoder>
    </appender>

    <logger name="com.jolbox.bonecp" level="DEBUG">
        <appender-ref ref="STDOUT" />
    </logger>

    <logger name="play" level="DEBUG">
        <appender-ref ref="STDOUT" />
    </logger>

    <logger name="application" level="DEBUG">
        <appender-ref ref="STDOUT" />
    </logger>

</configuration>

3voto

user3055282 Points 39

Ajoutez simplement ce qui suit à application.conf (fonctionne pour moi dans play 2.2.1)

db.default.logStatements=true

logger.com.jolbox.bonecp=DEBUG

1voto

Alexey Romanov Points 39124

Pour HikariCP (c'est-à-dire à partir de Play 2.4), voir https://github.com/brettwooldridge/HikariCP/wiki/JDBC-Logging :

HikariCP n'inclut pas intrinsèquement la journalisation JDBC pour le moment. Il s'agit d'une décision consciente, et non d'un oubli ou d'un élément non développé de la future feuille de route. Presque toutes les bases de données majeures ont un pilote JDBC capable de journaliser par lui-même. Pour celles qui ne le font pas, log4jdbc-log4j2 est une bonne option.

Cette page wiki explique comment activer la journalisation pour les bases de données courantes, ainsi que log4jdbc-log4j2.

Pour log4jdbc-log4j2 : ajoutez "org.bgee.log4jdbc-log4j2" % "log4jdbc-log4j2-jdbc4.1" % "1.16" a libraryDependencies La configuration est décrite à l'adresse suivante https://code.google.com/archive/p/log4jdbc-log4j2/ .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X