2010-11-02 6 views
13

मैं वसंत ढांचे के साथ iBatis का उपयोग कर रहा हूँ। मैं एसक्यूएल लॉग इन करने की है कि iBatis निष्पादित करता है जब मैं ऊपर लाइन मेरे पास है ibatis एसक्यूएल फ़ाइल में "emp_sql" आईडी के लिए दिखेगा तरहiBatis, वसंत, निष्पादित एसक्यूएल को कैसे लॉग करें?

Employee e = (Employee) getSqlMapClientTemplate().queryForObject("emp_sql", emp); 

कुछ कहना चाहते हैं। और फिर "emp_sql" से संबंधित क्वेरी चलाएं। मैं इस सवाल को लॉग करना चाहता हूं।

मेरे पास निम्न log4j xml गुण फ़ाइल है।

<appender name="sqlLogAppender" class="org.apache.log4j.DailyRollingFileAppender"> 
    <param name="file" value="/disk1/logs/sql.log"/> 
    <param name="datePattern" value="'-'yyyy-MM-dd'.txt'"/> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%m %n"/> 
    </layout> 
    <filter class="org.apache.log4j.varia.LevelRangeFilter"> 
     <param name="LevelMin" value="DEBUG"/> 
    </filter> 
</appender> 

<logger name="log4j.logger.com.ibatis"> 
    <level value="DEBUG"/> 
    <appender-ref ref="sqlLogAppender"/> 
</logger> 


<logger name="log4j.logger.java.sql.Connection"> 
    <level value="DEBUG"/> 
    <appender-ref ref="sqlLogAppender"/> 
</logger> 

<logger name="log4j.logger.java.sql.PreparedStatement"> 
    <level value="DEBUG"/> 
    <appender-ref ref="sqlLogAppender"/> 
</logger> 

मुझे अभी भी ibatis निष्पादित एसक्यूएल नहीं मिल सकता है। क्या कॉन्फ़िगरेशन में कुछ गड़बड़ है? मैं सिर्फ इतना कहना चाहिए

<appender name="sqlLogAppender" class="org.apache.log4j.DailyRollingFileAppender"> 
    <param name="file" value="/disk1/logs/sql.log"/> 
    <param name="datePattern" value="'-'yyyy-MM-dd'.txt'"/> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%m %n"/> 
    </layout> 
    <filter class="org.apache.log4j.varia.LevelRangeFilter"> 
     <param name="LevelMin" value="DEBUG"/> 
    </filter> 
</appender> 

<logger name="log4j.logger.java.sql"> 
    <level value="DEBUG"/> 
    <appender-ref ref="sqlLogAppender"/> 
</logger> 

मैं p6spy या कुछ और उपयोग करने के लिए है? या iBatis sql लॉग प्राप्त करने के लिए log4j कॉन्फ़िगरेशन में ऐसा कुछ है जो मैं कर सकता हूं?

+0

iBatis या MyBatis (संस्करण 3)? – AngerClown

उत्तर

15

अपनी log4j कॉन्फ़िगरेशन (जो आप देखना चाहते हैं) में निम्नलिखित जोड़ें।

 
# SqlMap logging configuration. 
#log4j.logger.com.ibatis=DEBUG 
#log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG 
#log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG 
#log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG 
#log4j.logger.java.sql=DEBUG 
#log4j.logger.java.sql.Connection=DEBUG 
#log4j.logger.java.sql.Statement=DEBUG 
#log4j.logger.java.sql.PreparedStatement=DEBUG 
#log4j.logger.java.sql.ResultSet=DEBUG 
0

अपने log4j में इस जोड़े

<logger name="java.sql" additivity="false"> 
    <level value="debug" /> 
    <appender-ref ref="console" /> </logger> 

यह एसक्यूएल के साथ ही उत्पादन परिणाम आपके log4j.xml में

3

इस जोड़े बाहर प्रिंट होगा

<logger name="com.ibatis" additivity="false"> 
    <level value="debug"/> 
    <appender-ref ref="APPENDER"/> 
</logger> 
2

हैं आप Log4j का उपयोग अपने लॉगिंग फ्रेमवर्क के रूप में कर रहे हैं, आपको log4j को अपने डिफ़ॉल्ट लॉगिंग टूल के रूप में उपयोग करने के लिए mybatis सेट करने की आवश्यकता है। आप इस तरह mybatis-config.xml में निर्धारित कर उस

<setting name="logImpl" value="LOG4J"/> 

ऐसा कर सकते हैं, या यदि आप mybatis-config.xml और बस एनोटेशन का उपयोग नहीं कर रहे हैं, तो आप

org.apache.ibatis.logging.LogFactory.useLog4JLogging(); 
उपयोग करना चाहते हैं डिफ़ॉल्ट लॉगिंग कार्यान्वयन सेट करने के लिए किसी अन्य mybatis विधियों का आह्वान करने से पहले

Read More...

अपने log4j.properties में

इस विन्यास का प्रयोग करें,

# Global logging configuration 
log4j.rootLogger=INFO, stdout 

# MyBatis mapper interfaces logging configuration... 
log4j.logger.com.sample.mappers=DEBUG 

# SqlMap logging configuration. 
log4j.logger.org.mybatis.spring=DEBUG 
log4j.logger.org.apache.ibatis=DEBUG 

# Console output... 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%d [%p] %c - %m%n 

आप log4j.xml विन्यास का उपयोग कर रहे हैं, तो इसके बाद के संस्करण के इस बराबर की कोशिश,

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd"> 
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'> 

    <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%d [%p] %c{1} - %m%n"/> 
    </layout> 
    </appender> 

    <logger name="org.mybatis.spring" additivity="false"> 
    <level value="debug"/> 
    <appender-ref ref="STDOUT"/> 
    </logger> 

    <logger name="com.sample.mappers"> 
    <level value="debug"/> 
    <appender-ref ref="STDOUT"/> 
    </logger> 

    <!-- Other custom 3rd party logger configs --> 

    <root> 
    <priority value ="debug" /> 
    <appender-ref ref="STDOUT" /> 
    </root> 

</log4j:configuration> 

या तो उपयोग गुण फ़ाइल या एक्सएमएल फ़ाइल को ऊपर के रूप में log4j कॉन्फ़िगर करने के लिए और इसे सही ढंग से काम करने के लिए अपने क्लासपाथ में रखें।

संबंधित मुद्दे