2016-07-22 5 views
2

Я добавил org.apache.ibatis.logging.jdbc.BaseJdbcLogger логгера logback.xml для входа SQL и результирующий набор из JDBC.SLF4J BaseJdbcLogger не вход

<appender name="console" class="ch.qos.logback.core.ConsoleAppender"> 
    <encoder> 
     <pattern>[%d{yyyy-MM-dd HH:mm:ss}] [%t] [%-5p] </pattern> 
    </encoder> 
</appender> 

<logger name="com.business.logic" level="INFO"/> 
<logger name="org.apache.ibatis.logging.jdbc.BaseJdbcLogger" level="DEBUG" /> 
<logger name="org.springframework.http.client.support" level="DEBUG" /> 
<logger name="org.springframework.web.client" level="DEBUG" /> 

<root level="WARN"> 
    <appender-ref ref="asyncAppender" /> 
    <appender-ref ref="console" /> 
</root> 

Мне кажется, что это приведет к регистрации sql и результирующего набора для консоли, но это не так. Чтобы справиться с этим, я изменил уровень регистрации каждого регистратора по-разному, и я понял, что он печатает журнал только тогда, когда уровень com.business.log является DEBUG

<logger name="com.business.logic" level="DEBUG"/> 
<logger name="org.apache.ibatis.logging.jdbc.BaseJdbcLogger" level="DEBUG" /> 
<logger name="org.springframework.http.client.support" level="DEBUG" /> 
<logger name="org.springframework.web.client" level="DEBUG" /> 

Я понятия не имею, почему уровень регистратора бизнес-логики влияет на регистратор Apache BaseJdbcLogger, хотя они установлены по-разному.

Если я использую mybatis-генератор, чего у меня нет, я мог бы предположить эту ситуацию. Поскольку код доступа mybatis от генератора будет располагаться в подкомплексе com.business.logic, поэтому он следует за набором com.business.logic logger. Однако я не использую mybatis-generator.

Вот мои вопросы:

  1. Что является причиной того, что BaseJdbcLogger не записывает в журнал с моей текущей настройки журнала?

  2. Если мне нужно изменить уровень com.business.logic в DEBUG, чтобы BaseJdbcLogger работать должным образом, то, что точка mybatis или SLF4J сделать это?

ответ

0

Поскольку вопрос был опубликован, я не могу не думать об этом. Я нашел один из них сам, и я обновлю, как только найду другого.

Q1. В чем причина того, что BaseJdbcLogger не регистрируется с моим текущим параметром журнала?

После того, как я прочитал статью о регистрации в Mybatis (http://www.mybatis.org/mybatis-3/logging.html), я понял, что неправильно понял регистратор. Я думал, что журнал с BaseJdbcLogger будет записывать sql и результирующий набор, потому что кажется BaseJdbcLogger.debug() печатает sql log !!!!

[2016-07-25 15:52:48] [main] [DEBUG] o.a.i.l.j.BaseJdbcLogger.debug[139] ==> Preparing: SELECT * FROM A. 

Однако я прочитал Mybatis протоколирования статью тщательно снова и снова, и я обнаружил, что все примеры ЗК в статье есть имя с бизнес-пакет не BaseJdbcLogger. Я до сих пор не знаю причины, но у меня есть то, что я должен использовать регистратор с именем бизнес-пакета не BaseJdbcLogger для регистрации в sql.

Смежные вопросы