<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>NY INTERACTIVE AGENCY « iFUEL INTERACTIVE / AGENCY212 &#187; logging</title>
	<atom:link href="http://blogs.ifuelinteractive.com/tag/logging/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.ifuelinteractive.com</link>
	<description>A NY INTERACTIVE AGENCY</description>
	<lastBuildDate>Fri, 02 Jul 2010 15:38:25 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Logging all SQL in Magento</title>
		<link>http://blogs.ifuelinteractive.com/2009/10/18/logging-all-sql-in-magento/</link>
		<comments>http://blogs.ifuelinteractive.com/2009/10/18/logging-all-sql-in-magento/#comments</comments>
		<pubDate>Sun, 18 Oct 2009 13:24:21 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Magento]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[logging]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://blogs.ifuelinteractive.com/?p=106</guid>
		<description><![CDATA[I&#8217;ve been looking for a way to log all the sql that Magento is running for debugging purposes.  There are a number of logging mechanisms built in to Magento, but none that would allow you to log all the sql that&#8217;s being run.  Finally, I&#8217;ve found a simple change that can be made [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been looking for a way to log all the sql that Magento is running for debugging purposes.  There are a number of logging mechanisms built in to Magento, but none that would allow you to log all the sql that&#8217;s being run.  Finally, I&#8217;ve found a simple change that can be made to a core file (I know, not ideal because it will get overwritten when you upgrade Magento &#8211; but it&#8217;s only a few lines in one file).</p>
<h3>The Change</h3>
<p>1. Open the file &lt;magentoroot&gt;/lib/Varien/Db/Adapter/Pdo/Mysql.php.</p>
<p>2. Add the following lines:</p>
<pre>
<pre class="brush: php">
$code = &#039;SQL: &#039; . $sql . &quot;\r\n&quot;;
if ($bind) {
     $code .= &#039;BIND: &#039; . print_r($bind, true) . &quot;\r\n&quot;;
}
$this-&gt;_debugWriteToFile(&quot;[&quot;.date(&#039;Y-m-d H:i:s&#039;).&quot;] &quot;.$code);
</pre>
</pre>
<p>Add it to the &#8220;query&#8221; function as shown below:</p>
<pre>
<pre class="brush: php">
public function query($sql, $bind = array())
{
     $this-&gt;_debugTimer();

     try {
          $sql = (string)$sql;
          if (strpos($sql, &#039;:&#039;) !== false || strpos($sql, &#039;?&#039;) !== false) {
               $this-&gt;_bindParams = $bind;
               $sql = preg_replace_callback(&#039;#(([\&#039;&quot;])((\\2)|((.*?[^\\\\])\\2)))#&#039;, array($this, &#039;proccessBindCallback&#039;), $sql);
               $bind = $this-&gt;_bindParams;
          }

          $code = &#039;SQL: &#039; . $sql . &quot;\r\n&quot;;
          if ($bind) {
               $code .= &#039;BIND: &#039; . print_r($bind, true) . &quot;\r\n&quot;;
          }
          $this-&gt;_debugWriteToFile(&quot;[&quot;.date(&#039;Y-m-d H:i:s&#039;).&quot;] &quot;.$code);

          $result = parent::query($sql, $bind);
     }
     catch (Exception $e) {
          $this-&gt;_debugStat(self::DEBUG_QUERY, $sql, $bind);
          $this-&gt;_debugException($e);
     }
     $this-&gt;_debugStat(self::DEBUG_QUERY, $sql, $bind, $result);
     return $result;
 }
</pre>
<p><span id="more-106"></span></pre>
<h3>The Log</h3>
<p>By default your sql will be logged to:</p>
<p>&lt;magentoroot&gt;/var/debug/sql.txt</p>
<h3>Limitations</h3>
<p>1. As mentioned above, the file will likely be overwritten during a Magento upgrade.</p>
<p>2. There&#8217;s nothing that will turn logging off (except a Magento upgrade).  So you need to be careful that this is a temporary setting for debugging only.</p>
<p>=============================<em><br />
“e-commerce done right</em>”<br />
<a href="http://www.ifuelinteractive.com/" target="_blank">http://www.ifuelinteractive.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.ifuelinteractive.com/2009/10/18/logging-all-sql-in-magento/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
