Gdzie zobaczyć zalogowane polecenia sql w play2?

Znalazłem taką konfigurację w application.conf:

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

Włączyłem go, ale nie mogę znaleźć żadnego pliku dziennika, który zalogował uruchomione SQL.

Gdzie mogę go znaleźć, czy coś mi umyka?

Author: Freewind, 2012-02-21

4 answers

1. podanie.conf

Upewnij się:

db.default.logStatements=true

Ten config jest w rzeczywistości ustawieniem bonecp, który jest pulą połączeń używaną w play2

2. custom logger

Dodaj niestandardową konfigurację loggera do conf/logger.xml.

Treść może być:

<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>

com.jlbox.bonecp jest dla bonecp, a play i application są dla play2.

3. wyłącz ustawienia rejestratora w aplikacji.conf

Skomentuj ustawienia loggera w 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

Uruchom ponownie grę, i zobaczysz wszystkie wykonane SQL(w tym wartości parametrów).

 56
Author: Freewind,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-09 11:10:31

To już nie działa w Play 2.4.2 z tego co wiem. Domyślny silnik puli połączeń został zmieniony na HikariCP.

Dodaj to do swojej aplikacji.conf i postępuj zgodnie ze wskazówkami poniżej. Powinno działać:

Podanie.conf

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

Conf / logger.xml Dodaj niestandardową konfigurację loggera do 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>
 5
Author: Gabe Brown,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-11 01:05:26

Wystarczy dodać następujące do aplikacji.conf (działa mi w play 2.2.1)

db.default.logStatements=true

logger.com.jolbox.bonecp=DEBUG
 3
Author: user3055282,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-26 06:45:46

Dla HikariCP (tj. począwszy od Play 2.4), Zobacz https://github.com/brettwooldridge/HikariCP/wiki/JDBC-Logging :

HikariCP nie zawiera obecnie logowania JDBC. Jest to świadoma decyzja, a nie niedopatrzenie lub nierozwinięty punkt przyszłej mapy drogowej. Prawie wszystkie główne bazy danych mają sterownik JDBC zdolny do samodzielnego logowania. Dla tych, którzy tego nie robią, log4jdbc-log4j2 jest dobrą opcją.

Ta strona wiki dokumentuje jak włączyć logowanie dla wspólne bazy danych, a także log4jdbc-log4j2.

Dla log4jdbc-log4j2: dodaj "org.bgee.log4jdbc-log4j2" % "log4jdbc-log4j2-jdbc4.1" % "1.16" do libraryDependencies; konfiguracja jest opisana w https://code.google.com/archive/p/log4jdbc-log4j2/.

 1
Author: Alexey Romanov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-11 12:01:27