사용자 도구

사이트 도구


java:hibernate:log

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
다음 판 양쪽 다음 판
java:hibernate:log [2018/04/19 16:53]
kwon37xi [logback]
java:hibernate:log [2021/02/16 18:21]
kwon37xi [Hibernate Log 남기기]
줄 1: 줄 1:
 ====== Hibernate Log 남기기 ====== ====== Hibernate Log 남기기 ======
-  * http://www.thoughts-on-java.org/hibernate-logging-guide/ 
  
 Hibernate는 Log4j 옵션 설정을 통해 SQL 실행 로그 등을 세세히 남기도록 조정할 수 있다. Hibernate는 Log4j 옵션 설정을 통해 SQL 실행 로그 등을 세세히 남기도록 조정할 수 있다.
줄 8: 줄 7:
   *  org.hibernate.type 로그에는 한가지 문제가 있다, 클래스가 로딩되는 순간 Log level을 저장해 놓고, 그 이후로는 그 저장된 값을 사용한다는 것이다. 이 때문에 처음에는 Log4J 설정을 DEBUG 이상의 레벨로 실행하다가 프로그램 실행중에 동적으로 TRACE로 바꾼다고 해서 JDBC 파라미터가 로그로 남지는 않는다. 따라서 항상, 이 로그를 남기려면 **Hibernate의 클래스들이 로딩되기 전에 Logger의 설정이 TRACE로 되어 있어야 한다.**   *  org.hibernate.type 로그에는 한가지 문제가 있다, 클래스가 로딩되는 순간 Log level을 저장해 놓고, 그 이후로는 그 저장된 값을 사용한다는 것이다. 이 때문에 처음에는 Log4J 설정을 DEBUG 이상의 레벨로 실행하다가 프로그램 실행중에 동적으로 TRACE로 바꾼다고 해서 JDBC 파라미터가 로그로 남지는 않는다. 따라서 항상, 이 로그를 남기려면 **Hibernate의 클래스들이 로딩되기 전에 Logger의 설정이 TRACE로 되어 있어야 한다.**
   * statistics를 남기기 위해 ''hibernate.generate_statistics=true'' 로 지정하고 ''org.hibernate.stat'' Logger를 ''DEBUG''로 지정한다.   * statistics를 남기기 위해 ''hibernate.generate_statistics=true'' 로 지정하고 ''org.hibernate.stat'' Logger를 ''DEBUG''로 지정한다.
 +
 +Hibernate 의 로깅을 사용하지 않고 [[database:mysql:jdbc|MySQL JDBC]] 처럼, JDBC 드라이버 자체의 로깅을 사용하는 방법도 있다.
 ===== logback ===== ===== logback =====
   * ''logback.groovy''<code groovy>   * ''logback.groovy''<code groovy>
줄 80: 줄 81:
 ===== SQL Formatter ===== ===== SQL Formatter =====
   * [[https://docs.jboss.org/hibernate/orm/4.2/javadocs/org/hibernate/engine/jdbc/internal/class-use/FormatStyle.html|FormatStyle]] 과 [[https://docs.jboss.org/hibernate/orm/4.2/javadocs/org/hibernate/engine/jdbc/internal/Formatter.html|Formatter]] 클래스를 통해 SQL을 포매팅할 수 있다.   * [[https://docs.jboss.org/hibernate/orm/4.2/javadocs/org/hibernate/engine/jdbc/internal/class-use/FormatStyle.html|FormatStyle]] 과 [[https://docs.jboss.org/hibernate/orm/4.2/javadocs/org/hibernate/engine/jdbc/internal/Formatter.html|Formatter]] 클래스를 통해 SQL을 포매팅할 수 있다.
 +
 +===== 참조 =====
 +  * [[https://stackoverflow.com/questions/1710476/how-to-print-a-query-string-with-parameter-values-when-using-hibernate|java - How to print a query string with parameter values when using Hibernate - Stack Overflow]]
 +  * [[https://thorben-janssen.com/hibernate-tips-how-to-log-sql-statements-and-their-parameters/|Hibernate Tips: How to log SQL statements and their param]]
  
java/hibernate/log.txt · 마지막으로 수정됨: 2023/12/24 11:38 저자 kwon37xi