2015-05-08 12 views
117

Ich bin ein Neuling im Frühjahr-Boot.wie SQL-Anweisungen im Frühjahr-Boot Log

Ich möchte SQL-Anweisungen in einer Datei protokollieren. Ich habe die folgenden Eigenschaften in application.properties

spring.datasource.url=... 
spring.datasource.username=user 
spring.datasource.password=1234 
spring.datasource.driver-class-name=net.sourceforge.jtds.jdbc.Driver 

spring.jpa.show-sql=true 
spring.jpa.properties.hibernate.format_sql=true 

security.ignored=true 
security.basic.enabled=false 

logging.level.org.springframework.web=INFO 
logging.level.org.hibernate=INFO 
logging.file=c:/temp/my-log/app.log 

Wenn ich meine Anwendung ausführen

cmd>mvn spring-boot:run 

Ich kann SQL-Anweisungen in der Konsole sehen, aber sie erscheinen nicht in einer Datei app.log. Die Datei enthält nur grundlegende Protokolle aus dem Frühjahr.

Was soll ich tun, um SQL-Anweisungen in der Protokolldatei zu sehen?

Antwort

174

versuchen diese in Ihren Eigenschaften mit Hilfe Datei:

logging.level.org.hibernate.SQL=DEBUG 
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE 
+16

Wenn Sie Werte wollen auch protokollieren: 'logging.level.org.hibernate.type = TRACE' – elysch

+0

Aber diese protokolliert nur wenige binden Werte. Wie kann ich Werte aus der Kriterien-API protokollieren? Wenn ich Spezifikationen verwende, erhalte ich keine Ausgabe für gebundene Parameter, die mit CriteriaBuilder erstellt wurden. – Josh

5

Für die MS-SQL-Server-Treiber (Microsoft SQL Server JDBC-Treiber).

Versuchen Sie es mit:

logging.level.com.microsoft.sqlserver.jdbc=debug 

in Ihrer Datei application.properties.

Meine persönliche Präferenz ist einzustellen:

logging.level.com.microsoft.sqlserver.jdbc=info 
logging.level.com.microsoft.sqlserver.jdbc.internals=debug 

Sie unter den folgenden Links als Referenz aussehen:

82

Das für stdout funktioniert auch:

Um Werte log:

spring.jpa.properties.hibernate.type=trace 

Gerade diese application.properties hinzuzufügen. Diese

+5

Wenn Sie auch Werte protokollieren wollen: 'spring.jpa.properties.hibernate.type = trace' – elysch

+0

Dies schreibt nicht in die Protokolldatei, dies schreibt in STDOUT –

+1

Ich sehe immernoch nur'? 'Anstelle der Parameter. Sollte diese Lösung sie mir zeigen? – Adeynack

37

funktioniert für mich (YAML):

spring: 
    jpa: 
    properties: 
     hibernate: 
     show_sql: true 
     format_sql: true 
logging: 
    level: 
    org: 
     hibernate: 
     type: trace 
2

, wenn Sie einen hava logback-spring.xml oder so etwas, fügen Sie den folgenden Code, um es

<logger name="org.hibernate.SQL" level="trace" additivity="false"> 
    <appender-ref ref="file" /> 
</logger> 

Arbeiten für mich.

2

Nach documentation es ist:

spring.jpa.show-sql=true # Enable logging of SQL statements. 
2

Bitte verwenden.

logging.level.org.hibernate.SQL=DEBUG 
logging.level.org.hibernate.type=TRACE 
spring.jpa.show-sql=true 
It works for me. 

Danke, 
Rahul