Location: PHPKode > projects > Cgiapp.class.php > Cgiapp2-2.0.0/doc/__filesource/fsource_Cgiapp2__Cgiapp2ExceptionObserverLog.class.php.html
<html>
<head>
<title>File Source for Log.class.php</title>
<link rel="stylesheet" type="text/css" href="../media/style.css">
</head>
<body>

<table border="0" cellspacing="0" cellpadding="0" height="48" width="100%">
  <tr>
    <td class="header_top">Cgiapp2</td>
  </tr>
  <tr><td class="header_line"><img src="../media/empty.png" width="1" height="1" border="0" alt=""  /></td></tr>
  <tr>
    <td class="header_menu">
  		  [ <a href="../classtrees_Cgiapp2.html" class="menu">class tree: Cgiapp2</a> ]
		  [ <a href="../elementindex_Cgiapp2.html" class="menu">index: Cgiapp2</a> ]
		  [ <a href="../elementindex.html" class="menu">all elements</a> ]
    </td>
  </tr>
  <tr><td class="header_line"><img src="../media/empty.png" width="1" height="1" border="0" alt=""  /></td></tr>
</table>

<table width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr valign="top">
    <td width="200" class="menu">
	<div id="ric">
					<p><a href="../ric_Changelog.html">Changelog</a></p>
					<p><a href="../ric_README.html">README</a></p>
			</div>
      <b>Packages:</b><br />
              <a href="../li_Cgiapp2.html">Cgiapp2</a><br />
            <br /><br />
                  
                </td>
    <td>
      <table cellpadding="10" cellspacing="0" width="100%" border="0"><tr><td valign="top">

<h1 align="center">Source for file Log.class.php</h1>
<p>Documentation is available at <a href="../Cgiapp2/_Cgiapp2_Exception_Observer_Log_class_php.html">Log.class.php</a></p>
<div class="php">
<div class="listing"><pre><ol><li><a name="a1"></a><span class="src-php">&lt;?php</span></li>
<li><a name="a2"></a><span class="src-doc">/**</span></li>
<li><a name="a3"></a><span class="src-doc"> * Cgiapp2 - Framework for building reusable web-applications</span></li>
<li><a name="a4"></a><span class="src-doc"> *</span></li>
<li><a name="a5"></a><span class="src-doc"> * A PHP5 port of perl's CGI::Application, a framework for building reusable web</span></li>
<li><a name="a6"></a><span class="src-doc"> * applications.</span></li>
<li><a name="a7"></a><span class="src-doc"> *</span></li>
<li><a name="a8"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@package</span><span class="src-doc"> Cgiapp2</span></li>
<li><a name="a9"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@author</span><span class="src-doc"> Matthew Weier O'Phinney &lt;hide@address.com&gt;; based on</span></li>
<li><a name="a10"></a><span class="src-doc"> *  CGI::Application, by Jesse Erlbaum &lt;hide@address.com&gt;, et. al.</span></li>
<li><a name="a11"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@copyright</span><span class="src-doc"> (c) 2004 - present, Matthew Weier O'Phinney</span></li>
<li><a name="a12"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@license</span><span class="src-doc"> BSD License (http://www.opensource.org/licenses/bsd-license.php)</span></li>
<li><a name="a13"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@category</span><span class="src-doc"> Tools and Utilities</span></li>
<li><a name="a14"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@tutorial</span><span class="src-doc"> Cgiapp2/Cgiapp2.cls</span></li>
<li><a name="a15"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@version</span><span class="src-doc"> $Id:$</span></li>
<li><a name="a16"></a><span class="src-doc"> */</span></li>
<li><a name="a17"></a>&nbsp;</li>
<li><a name="a18"></a><span class="src-doc">/**</span></li>
<li><a name="a19"></a><span class="src-doc"> * Observes Cgiapp2_Exception</span></li>
<li><a name="a20"></a><span class="src-doc"> */</span></li>
<li><a name="a21"></a><span class="src-inc">require_once </span><span class="src-str">'Cgiapp2/Exception.class.php'</span><span class="src-sym">;</span></li>
<li><a name="a22"></a>&nbsp;</li>
<li><a name="a23"></a><span class="src-doc">/**</span></li>
<li><a name="a24"></a><span class="src-doc"> * Implements Cgiapp2_Exception_Observer_Interface</span></li>
<li><a name="a25"></a><span class="src-doc"> */</span></li>
<li><a name="a26"></a><span class="src-inc">require_once </span><span class="src-str">'Cgiapp2/Exception/Observer/Interface.class.php'</span><span class="src-sym">;</span></li>
<li><a name="a27"></a>&nbsp;</li>
<li><a name="a28"></a><span class="src-doc">/**</span></li>
<li><a name="a29"></a><span class="src-doc"> * Cgiapp2_Exception_Observer_Log</span></li>
<li><a name="a30"></a><span class="src-doc"> *</span></li>
<li><a name="a31"></a><span class="src-doc"> * </span><span class="src-doc-inlinetag">{@link Cgiapp2_Exception}</span><span class="src-doc"> observer. Writes exception information to a log</span></li>
<li><a name="a32"></a><span class="src-doc"> * file.</span></li>
<li><a name="a33"></a><span class="src-doc"> *</span></li>
<li><a name="a34"></a><span class="src-doc"> * Sample usage:</span></li>
<li><a name="a35"></a><span class="src-doc"> * &lt;code&gt;</span></li>
<li><a name="a36"></a><span class="src-doc"> * require_once 'Cgiapp2/Exception/Observer/Log.class.php';</span></li>
<li><a name="a37"></a><span class="src-doc"> *</span></li>
<li><a name="a38"></a><span class="src-doc"> * // Set the log file to '/tmp/exceptions/log'</span></li>
<li><a name="a39"></a><span class="src-doc"> * Cgiapp2_Exception_Observer_Log::setFile('/tmp/exceptions/log');</span></li>
<li><a name="a40"></a><span class="src-doc"> *</span></li>
<li><a name="a41"></a><span class="src-doc"> * try {</span></li>
<li><a name="a42"></a><span class="src-doc"> *     throw new Cgiapp2_Exception('Log this...');</span></li>
<li><a name="a43"></a><span class="src-doc"> * } catch (Cgiapp2_Exception $e) {</span></li>
<li><a name="a44"></a><span class="src-doc"> *     // do something</span></li>
<li><a name="a45"></a><span class="src-doc"> * }</span></li>
<li><a name="a46"></a><span class="src-doc"> * &lt;/code&gt;</span></li>
<li><a name="a47"></a><span class="src-doc"> * </span></li>
<li><a name="a48"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@package</span><span class="src-doc"> Cgiapp2</span></li>
<li><a name="a49"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@author</span><span class="src-doc"> Matthew Weier O'Phinney &lt;hide@address.com&gt;</span></li>
<li><a name="a50"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@copyright</span><span class="src-doc"> (c) 2006 - Present, Matthew Weier O'Phinney</span></li>
<li><a name="a51"></a><span class="src-doc"> *  &lt;hide@address.com&gt;</span></li>
<li><a name="a52"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@version</span><span class="src-doc"> @release-version@</span></li>
<li><a name="a53"></a><span class="src-doc"> */</span></li>
<li><a name="a54"></a><span class="src-key">class </span><a href="../Cgiapp2/Cgiapp2_Exception_Observer_Log.html">Cgiapp2_Exception_Observer_Log</a> <span class="src-key">implements </span><span class="src-id">Cgiapp2_Exception_Observer_Interface</span></li>
<li><a name="a55"></a><span class="src-sym">{</span></li>
<li><a name="a56"></a>    <span class="src-doc">/**</span></li>
<li><a name="a57"></a><span class="src-doc">     * Log file. Defaults to '/tmp/cgiapp_exception.log'</span></li>
<li><a name="a58"></a><span class="src-doc">     * </span><span class="src-doc-coretag">@var </span><span class="src-doc-type">string </span></li>
<li><a name="a59"></a><span class="src-doc">     * </span><span class="src-doc-coretag">@access</span><span class="src-doc"> public</span></li>
<li><a name="a60"></a><span class="src-doc">     */</span></li>
<li><a name="a61"></a>    <span class="src-key">public </span><a href="../Cgiapp2/Cgiapp2_Exception_Observer_Log.html#var$file">$file</a><span class="src-sym">;</span></li>
<li><a name="a62"></a>&nbsp;</li>
<li><a name="a63"></a>    <span class="src-doc">/**</span></li>
<li><a name="a64"></a><span class="src-doc">     * sprintf() style format for log message. Defaults to</span></li>
<li><a name="a65"></a><span class="src-doc">     * &quot;[%s] [%s:%c] %c: %s\n&quot; ([date] [file:line] code: message)</span></li>
<li><a name="a66"></a><span class="src-doc">     * </span><span class="src-doc-coretag">@var </span><span class="src-doc-type">string </span></li>
<li><a name="a67"></a><span class="src-doc">     * </span><span class="src-doc-coretag">@access</span><span class="src-doc"> public</span></li>
<li><a name="a68"></a><span class="src-doc">     */</span></li>
<li><a name="a69"></a>    <span class="src-key">public </span><a href="../Cgiapp2/Cgiapp2_Exception_Observer_Log.html#var$format">$format</a><span class="src-sym">;</span></li>
<li><a name="a70"></a>&nbsp;</li>
<li><a name="a71"></a>    <span class="src-doc">/**</span></li>
<li><a name="a72"></a><span class="src-doc">     * Singleton instance</span></li>
<li><a name="a73"></a><span class="src-doc">     * </span><span class="src-doc-coretag">@var </span><span class="src-doc-type">bool</span><span class="src-doc">|</span><span class="src-doc-type">Cgiapp2_Exception_Observer_Log</span></li>
<li><a name="a74"></a><span class="src-doc">     * </span><span class="src-doc-coretag">@static</span></li>
<li><a name="a75"></a><span class="src-doc">     * </span><span class="src-doc-coretag">@access</span><span class="src-doc"> private</span></li>
<li><a name="a76"></a><span class="src-doc">     */</span></li>
<li><a name="a77"></a>    <span class="src-key">private </span><span class="src-key">static </span><span class="src-var">$instance </span>= <span class="src-id">false</span><span class="src-sym">;</span></li>
<li><a name="a78"></a>&nbsp;</li>
<li><a name="a79"></a>    <span class="src-doc">/**</span></li>
<li><a name="a80"></a><span class="src-doc">     * Constructor</span></li>
<li><a name="a81"></a><span class="src-doc">     * </span></li>
<li><a name="a82"></a><span class="src-doc">     * </span><span class="src-doc-coretag">@param </span><span class="src-doc-type">mixed </span><span class="src-doc-var">$file </span><span class="src-doc">File to which to log; must be writeable</span></li>
<li><a name="a83"></a><span class="src-doc">     * </span><span class="src-doc-coretag">@param </span><span class="src-doc-type">mixed </span><span class="src-doc-var">$format </span><span class="src-doc">Defaults to empty; log format (printf compatible)</span></li>
<li><a name="a84"></a><span class="src-doc">     * </span><span class="src-doc-coretag">@access</span><span class="src-doc"> public</span></li>
<li><a name="a85"></a><span class="src-doc">     * </span><span class="src-doc-coretag">@return </span><span class="src-doc-type">void </span></li>
<li><a name="a86"></a><span class="src-doc">     * </span><span class="src-doc-coretag">@throws</span><span class="src-doc"> Exception if log file is not writable</span></li>
<li><a name="a87"></a><span class="src-doc">     */</span></li>
<li><a name="a88"></a>    <span class="src-key">private </span><span class="src-key">function </span><span class="src-id">__construct</span><span class="src-sym">(</span><span class="src-var">$file</span><span class="src-sym">, </span><span class="src-var">$format</span><span class="src-sym">)</span></li>
<li><a name="a89"></a>    <span class="src-sym">{</span></li>
<li><a name="a90"></a>        <span class="src-var">$this</span><span class="src-sym">-&gt;</span><a href="../Cgiapp2/Cgiapp2_Exception_Observer_Log.html#var$file">file</a>   = <span class="src-var">$file</span><span class="src-sym">;</span></li>
<li><a name="a91"></a>        <span class="src-var">$this</span><span class="src-sym">-&gt;</span><a href="../Cgiapp2/Cgiapp2_Exception_Observer_Log.html#var$format">format</a> = <span class="src-var">$format</span><span class="src-sym">;</span></li>
<li><a name="a92"></a>    <span class="src-sym">}</span></li>
<li><a name="a93"></a>&nbsp;</li>
<li><a name="a94"></a>    <span class="src-doc">/**</span></li>
<li><a name="a95"></a><span class="src-doc">     * Singleton</span></li>
<li><a name="a96"></a><span class="src-doc">     * </span></li>
<li><a name="a97"></a><span class="src-doc">     * </span><span class="src-doc-coretag">@static</span></li>
<li><a name="a98"></a><span class="src-doc">     * </span><span class="src-doc-coretag">@access</span><span class="src-doc"> public</span></li>
<li><a name="a99"></a><span class="src-doc">     * </span><span class="src-doc-coretag">@param </span><span class="src-doc-type">string </span><span class="src-doc-var">$file </span><span class="src-doc">Location of log</span></li>
<li><a name="a100"></a><span class="src-doc">     * </span><span class="src-doc-coretag">@param </span><span class="src-doc-type">string </span><span class="src-doc-var">$format </span><span class="src-doc">sprintf() format for log</span></li>
<li><a name="a101"></a><span class="src-doc">     * </span><span class="src-doc-coretag">@return </span><span class="src-doc-type">void </span></li>
<li><a name="a102"></a><span class="src-doc">     * </span><span class="src-doc-coretag">@throws</span><span class="src-doc"> Exception if unable to write to file</span></li>
<li><a name="a103"></a><span class="src-doc">     */</span></li>
<li><a name="a104"></a>    <span class="src-key">public </span><span class="src-key">static </span><span class="src-key">function </span><a href="../Cgiapp2/Cgiapp2_Exception_Observer_Log.html#methodgetInstance">getInstance</a><span class="src-sym">(</span><span class="src-var">$file </span>= <span class="src-id">null</span><span class="src-sym">, </span><span class="src-var">$format </span>= <span class="src-id">null</span><span class="src-sym">)</span></li>
<li><a name="a105"></a>    <span class="src-sym">{</span></li>
<li><a name="a106"></a>        <span class="src-key">if </span><span class="src-sym">(</span><span class="src-id">self</span><span class="src-sym">::</span><span class="src-var">$instance</span><span class="src-sym">) </span><span class="src-sym">{</span></li>
<li><a name="a107"></a>            <span class="src-key">return </span><span class="src-id">self</span><span class="src-sym">::</span><span class="src-var">$instance</span><span class="src-sym">;</span></li>
<li><a name="a108"></a>        <span class="src-sym">}</span></li>
<li><a name="a109"></a>&nbsp;</li>
<li><a name="a110"></a>        <span class="src-key">if </span><span class="src-sym">(</span><span class="src-key">empty</span><span class="src-sym">(</span><span class="src-var">$file</span><span class="src-sym">)) </span><span class="src-sym">{</span></li>
<li><a name="a111"></a>            <span class="src-var">$file </span>= <span class="src-str">'/tmp/cgiapp_exception.log'</span><span class="src-sym">;</span></li>
<li><a name="a112"></a>        <span class="src-sym">}</span></li>
<li><a name="a113"></a>        <span class="src-key">if </span><span class="src-sym">(</span><span class="src-id">file_exists</span><span class="src-sym">(</span><span class="src-var">$file</span><span class="src-sym">) </span>&amp;&amp; <span class="src-sym">!</span><a href="http://www.php.net/is_writable">is_writable</a><span class="src-sym">(</span><span class="src-var">$file</span><span class="src-sym">)) </span><span class="src-sym">{</span></li>
<li><a name="a114"></a>            throw <span class="src-key">new </span><span class="src-id">Exception</span><span class="src-sym">(</span>__CLASS__ . <span class="src-str">' file \'' </span>. <span class="src-var">$file </span>. <span class="src-str">'\' is not writable'</span><span class="src-sym">)</span><span class="src-sym">;</span></li>
<li><a name="a115"></a>        <span class="src-sym">} </span><span class="src-key">elseif </span><span class="src-sym">(</span><span class="src-sym">!</span><a href="http://www.php.net/file_exists">file_exists</a><span class="src-sym">(</span><span class="src-var">$file</span><span class="src-sym">) </span>&amp;&amp; <span class="src-sym">!</span><a href="http://www.php.net/is_writable">is_writable</a><span class="src-sym">(</span><a href="http://www.php.net/dirname">dirname</a><span class="src-sym">(</span><span class="src-var">$file</span><span class="src-sym">))) </span><span class="src-sym">{</span></li>
<li><a name="a116"></a>            throw <span class="src-key">new </span><span class="src-id">Exception</span><span class="src-sym">(</span>__CLASS__ . <span class="src-str">' file \'' </span>. <span class="src-var">$file </span>. <span class="src-str">'\' can not be created'</span><span class="src-sym">)</span><span class="src-sym">;</span></li>
<li><a name="a117"></a>        <span class="src-sym">}</span></li>
<li><a name="a118"></a>&nbsp;</li>
<li><a name="a119"></a>        <span class="src-key">if </span><span class="src-sym">(</span><span class="src-key">empty</span><span class="src-sym">(</span><span class="src-var">$format</span><span class="src-sym">)) </span><span class="src-sym">{</span></li>
<li><a name="a120"></a>            <span class="src-var">$format </span>= <span class="src-str">&quot;[%s] [%s:%c] %c: %s\n&quot;</span><span class="src-sym">;</span></li>
<li><a name="a121"></a>        <span class="src-sym">}</span></li>
<li><a name="a122"></a>&nbsp;</li>
<li><a name="a123"></a>        <span class="src-id">self</span><span class="src-sym">::</span><span class="src-var">$instance </span>= <span class="src-key">new </span><span class="src-id">Cgiapp2_Exception_Observer_Log</span><span class="src-sym">(</span><span class="src-var">$file</span><span class="src-sym">, </span><span class="src-var">$format</span><span class="src-sym">)</span><span class="src-sym">;</span></li>
<li><a name="a124"></a>&nbsp;</li>
<li><a name="a125"></a>        <span class="src-key">return </span><span class="src-id">self</span><span class="src-sym">::</span><span class="src-var">$instance</span><span class="src-sym">;</span></li>
<li><a name="a126"></a>    <span class="src-sym">}</span></li>
<li><a name="a127"></a>&nbsp;</li>
<li><a name="a128"></a>    <span class="src-doc">/**</span></li>
<li><a name="a129"></a><span class="src-doc">     * Set the log file</span></li>
<li><a name="a130"></a><span class="src-doc">     * </span></li>
<li><a name="a131"></a><span class="src-doc">     * </span><span class="src-doc-coretag">@static</span></li>
<li><a name="a132"></a><span class="src-doc">     * </span><span class="src-doc-coretag">@access</span><span class="src-doc"> public</span></li>
<li><a name="a133"></a><span class="src-doc">     * </span><span class="src-doc-coretag">@param </span><span class="src-doc-type">string </span><span class="src-doc-var">$file </span></li>
<li><a name="a134"></a><span class="src-doc">     * </span><span class="src-doc-coretag">@return </span><span class="src-doc-type">bool </span></li>
<li><a name="a135"></a><span class="src-doc">     */</span></li>
<li><a name="a136"></a>    <span class="src-key">public </span><span class="src-key">static </span><span class="src-key">function </span><a href="../Cgiapp2/Cgiapp2_Exception_Observer_Log.html#methodsetFile">setFile</a><span class="src-sym">(</span><span class="src-var">$file</span><span class="src-sym">)</span></li>
<li><a name="a137"></a>    <span class="src-sym">{</span></li>
<li><a name="a138"></a>        <span class="src-key">if </span><span class="src-sym">(</span><span class="src-id">file_exists</span><span class="src-sym">(</span><span class="src-var">$file</span><span class="src-sym">) </span>&amp;&amp; <span class="src-sym">!</span><a href="http://www.php.net/is_writable">is_writable</a><span class="src-sym">(</span><span class="src-var">$file</span><span class="src-sym">)) </span><span class="src-sym">{</span></li>
<li><a name="a139"></a>            <span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></li>
<li><a name="a140"></a>        <span class="src-sym">} </span><span class="src-key">elseif </span><span class="src-sym">(</span><span class="src-sym">!</span><a href="http://www.php.net/file_exists">file_exists</a><span class="src-sym">(</span><span class="src-var">$file</span><span class="src-sym">) </span>&amp;&amp; <span class="src-sym">!</span><a href="http://www.php.net/is_writable">is_writable</a><span class="src-sym">(</span><a href="http://www.php.net/dirname">dirname</a><span class="src-sym">(</span><span class="src-var">$file</span><span class="src-sym">))) </span><span class="src-sym">{</span></li>
<li><a name="a141"></a>            <span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></li>
<li><a name="a142"></a>        <span class="src-sym">}</span></li>
<li><a name="a143"></a>&nbsp;</li>
<li><a name="a144"></a>        <span class="src-id">self</span><span class="src-sym">::</span><span class="src-id">getInstance</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">-&gt;</span><span class="src-id">file </span>= <span class="src-var">$file</span><span class="src-sym">;</span></li>
<li><a name="a145"></a>        <span class="src-key">return </span><span class="src-id">true</span><span class="src-sym">;</span></li>
<li><a name="a146"></a>    <span class="src-sym">}</span></li>
<li><a name="a147"></a>&nbsp;</li>
<li><a name="a148"></a>    <span class="src-doc">/**</span></li>
<li><a name="a149"></a><span class="src-doc">     * Set the log format</span></li>
<li><a name="a150"></a><span class="src-doc">     * </span></li>
<li><a name="a151"></a><span class="src-doc">     * </span><span class="src-doc-coretag">@static</span></li>
<li><a name="a152"></a><span class="src-doc">     * </span><span class="src-doc-coretag">@access</span><span class="src-doc"> public</span></li>
<li><a name="a153"></a><span class="src-doc">     * </span><span class="src-doc-coretag">@param </span><span class="src-doc-type">mixed </span><span class="src-doc-var">$format </span></li>
<li><a name="a154"></a><span class="src-doc">     * </span><span class="src-doc-coretag">@return </span><span class="src-doc-type">void </span></li>
<li><a name="a155"></a><span class="src-doc">     */</span></li>
<li><a name="a156"></a>    <span class="src-key">public </span><span class="src-key">static </span><span class="src-key">function </span><a href="../Cgiapp2/Cgiapp2_Exception_Observer_Log.html#methodsetFormat">setFormat</a><span class="src-sym">(</span><span class="src-var">$format</span><span class="src-sym">)</span></li>
<li><a name="a157"></a>    <span class="src-sym">{</span></li>
<li><a name="a158"></a>        <span class="src-id">self</span><span class="src-sym">::</span><span class="src-id">getInstance</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">-&gt;</span><span class="src-id">format </span>= <span class="src-var">$format</span><span class="src-sym">;</span></li>
<li><a name="a159"></a>    <span class="src-sym">}</span></li>
<li><a name="a160"></a>&nbsp;</li>
<li><a name="a161"></a>    <span class="src-doc">/**</span></li>
<li><a name="a162"></a><span class="src-doc">     * Log an exception</span></li>
<li><a name="a163"></a><span class="src-doc">     * </span></li>
<li><a name="a164"></a><span class="src-doc">     * </span><span class="src-doc-coretag">@static</span></li>
<li><a name="a165"></a><span class="src-doc">     * </span><span class="src-doc-coretag">@access</span><span class="src-doc"> public</span></li>
<li><a name="a166"></a><span class="src-doc">     * </span><span class="src-doc-coretag">@param </span><span class="src-doc-type">Cgiapp2_Exception </span><span class="src-doc-var">$e </span></li>
<li><a name="a167"></a><span class="src-doc">     * </span><span class="src-doc-coretag">@return </span><span class="src-doc-type">void </span></li>
<li><a name="a168"></a><span class="src-doc">     * </span><span class="src-doc-coretag">@throws</span><span class="src-doc"> Exception if unable to append file or obtain lock</span></li>
<li><a name="a169"></a><span class="src-doc">     */</span></li>
<li><a name="a170"></a>    <span class="src-key">public </span><span class="src-key">static </span><span class="src-key">function </span><a href="../Cgiapp2/Cgiapp2_Exception_Observer_Log.html#methodevent">event</a><span class="src-sym">(</span><span class="src-id">Cgiapp2_Exception </span><span class="src-var">$e</span><span class="src-sym">)</span></li>
<li><a name="a171"></a>    <span class="src-sym">{</span></li>
<li><a name="a172"></a>        <span class="src-var">$handler </span>= <span class="src-id">self</span><span class="src-sym">::</span><span class="src-id">getInstance</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></li>
<li><a name="a173"></a>        <span class="src-var">$log     </span>= <span class="src-var">$handler</span><span class="src-sym">-&gt;</span><span class="src-id">file</span><span class="src-sym">;</span></li>
<li><a name="a174"></a>        <span class="src-var">$fh      </span>= <a href="http://www.php.net/fopen">fopen</a><span class="src-sym">(</span><span class="src-var">$log</span><span class="src-sym">, </span><span class="src-str">'a'</span><span class="src-sym">)</span><span class="src-sym">;</span></li>
<li><a name="a175"></a>        <span class="src-key">if </span><span class="src-sym">(</span><span class="src-id">false </span>=== <span class="src-var">$fh</span><span class="src-sym">) </span><span class="src-sym">{</span></li>
<li><a name="a176"></a>            throw <span class="src-key">new </span><span class="src-id">Exception</span><span class="src-sym">(</span>__CLASS__ . <span class="src-str">' unable to append to log file'</span><span class="src-sym">)</span><span class="src-sym">;</span></li>
<li><a name="a177"></a>        <span class="src-sym">}</span></li>
<li><a name="a178"></a>        <span class="src-key">if </span><span class="src-sym">(</span><span class="src-sym">!</span><a href="http://www.php.net/flock">flock</a><span class="src-sym">(</span><span class="src-var">$fh</span><span class="src-sym">, </span><span class="src-id">LOCK_EX</span><span class="src-sym">)) </span><span class="src-sym">{</span></li>
<li><a name="a179"></a>            throw <span class="src-key">new </span><span class="src-id">Exception</span><span class="src-sym">(</span>__CLASS__ . <span class="src-str">' unable to lock log file'</span><span class="src-sym">)</span><span class="src-sym">;</span></li>
<li><a name="a180"></a>        <span class="src-sym">}</span></li>
<li><a name="a181"></a>&nbsp;</li>
<li><a name="a182"></a>        <span class="src-var">$date </span>= <a href="http://www.php.net/date">date</a><span class="src-sym">(</span><span class="src-str">'Y-m-d H:i:s'</span><span class="src-sym">)</span><span class="src-sym">;</span></li>
<li><a name="a183"></a>        <span class="src-var">$file </span>= <span class="src-var">$e</span><span class="src-sym">-&gt;</span><span class="src-id">getFile</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></li>
<li><a name="a184"></a>        <span class="src-var">$line </span>= <span class="src-var">$e</span><span class="src-sym">-&gt;</span><span class="src-id">getLine</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></li>
<li><a name="a185"></a>        <span class="src-var">$code </span>= <span class="src-var">$e</span><span class="src-sym">-&gt;</span><span class="src-id">getCode</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></li>
<li><a name="a186"></a>        <span class="src-var">$msg  </span>= <span class="src-var">$e</span><span class="src-sym">-&gt;</span><span class="src-id">getMessage</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></li>
<li><a name="a187"></a>&nbsp;</li>
<li><a name="a188"></a>        <span class="src-var">$msg </span>= <a href="http://www.php.net/sprintf">sprintf</a><span class="src-sym">(</span><span class="src-var">$handler</span><span class="src-sym">-&gt;</span><span class="src-id">format</span><span class="src-sym">, </span><span class="src-var">$date</span><span class="src-sym">, </span><span class="src-var">$file</span><span class="src-sym">, </span><span class="src-var">$line</span><span class="src-sym">, </span><span class="src-var">$code</span><span class="src-sym">, </span><span class="src-var">$msg</span><span class="src-sym">)</span><span class="src-sym">;</span></li>
<li><a name="a189"></a>        <a href="http://www.php.net/fwrite">fwrite</a><span class="src-sym">(</span><span class="src-var">$fh</span><span class="src-sym">, </span><span class="src-var">$msg</span><span class="src-sym">)</span><span class="src-sym">;</span></li>
<li><a name="a190"></a>        <a href="http://www.php.net/flock">flock</a><span class="src-sym">(</span><span class="src-var">$fh</span><span class="src-sym">, </span><span class="src-id">LOCK_UN</span><span class="src-sym">)</span><span class="src-sym">;</span></li>
<li><a name="a191"></a>        <a href="http://www.php.net/fclose">fclose</a><span class="src-sym">(</span><span class="src-var">$fh</span><span class="src-sym">)</span><span class="src-sym">;</span></li>
<li><a name="a192"></a>    <span class="src-sym">}</span></li>
<li><a name="a193"></a><span class="src-sym">}</span></li>
<li><a name="a194"></a>&nbsp;</li>
<li><a name="a195"></a><span class="src-doc">/**</span></li>
<li><a name="a196"></a><span class="src-doc"> * Observe Cgiapp2_Exception</span></li>
<li><a name="a197"></a><span class="src-doc"> */</span></li>
<li><a name="a198"></a><span class="src-id"><a href="../Cgiapp2/Cgiapp2_Exception.html">Cgiapp2_Exception</a></span><span class="src-sym">::</span><a href="../Cgiapp2/Cgiapp2_Exception.html#methodattach">attach</a><span class="src-sym">(</span><span class="src-str">'Cgiapp2_Exception_Observer_Log'</span><span class="src-sym">)</span><span class="src-sym">;</span></li>
</ol></pre></div>
</div>
        <div class="credit">
		    <hr />
		    Documentation generated on Sat, 03 Jun 2006 10:48:49 -0400 by <a href="http://www.phpdoc.org">phpDocumentor 1.3.0RC5</a>
	      </div>
      </td></tr></table>
    </td>
  </tr>
</table>

</body>
</html>
Return current item: Cgiapp.class.php