<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.17 $ -->
<refentry xml:id="function.error-log" xmlns="http://docbook.org/ns/docbook">
 <refnamediv>
  <refname>error_log</refname>
  <refpurpose>Send an error message somewhere</refpurpose>
 </refnamediv>

 <refsect1 role="description">
  &reftitle.description;
  <methodsynopsis>
   <type>bool</type><methodname>error_log</methodname>
   <methodparam><type>string</type><parameter>message</parameter></methodparam>
   <methodparam choice="opt"><type>int</type><parameter>message_type</parameter></methodparam>
   <methodparam choice="opt"><type>string</type><parameter>destination</parameter></methodparam>
   <methodparam choice="opt"><type>string</type><parameter>extra_headers</parameter></methodparam>
  </methodsynopsis>
  <para>
   Sends an error message to the web server's error log, a
   <acronym>TCP</acronym> port or to a file.
  </para>
 </refsect1>

 <refsect1 role="parameters">
  &reftitle.parameters;
  <para>
   <variablelist>
    <varlistentry>
     <term><parameter>message</parameter></term>
     <listitem>
      <para>
       The error message that should be logged.
      </para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><parameter>message_type</parameter></term>
     <listitem>
      <para>
       Says where the error should go. The possible message types are as 
       follows:
      </para>
      <para>
       <table>
        <title><function>error_log</function> log types</title>
        <tgroup cols="2">
         <tbody>
          <row>
           <entry>0</entry>
           <entry>
            <parameter>message</parameter> is sent to PHP's system logger, using
            the Operating System's system logging mechanism or a file, depending
            on what the <link linkend="ini.error-log">error_log</link>
            configuration directive is set to.  This is the default option.
           </entry>
          </row>
          <row>
           <entry>1</entry>
           <entry>
            <parameter>message</parameter> is sent by email to the address in
            the <parameter>destination</parameter> parameter.  This is the only
            message type where the fourth parameter,
            <parameter>extra_headers</parameter> is used.
           </entry>
          </row>
          <row>
           <entry>2</entry>
           <entry>
            <parameter>message</parameter> is sent through the PHP debugging
            connection.  This option is only available if <link
            linkend="configure.enable-debugger">remote debugging has
            been enabled</link>.  In this case, the
            <parameter>destination</parameter> parameter specifies the host name
            or IP address and optionally, port number, of the socket receiving
            the debug information. This option is only available in PHP 3.
           </entry>
          </row>
          <row>
           <entry>3</entry>
           <entry>
            <parameter>message</parameter> is appended to the file
            <parameter>destination</parameter>. A newline is not automatically 
            added to the end of the <parameter>message</parameter> string.
           </entry>
          </row>
         </tbody>
        </tgroup>
       </table>
      </para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><parameter>destination</parameter></term>
     <listitem>
      <para>
       The destination. Its meaning depends on the 
       <parameter>message_type</parameter> parameter as described above.
      </para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><parameter>extra_headers</parameter></term>
     <listitem>
      <para>
       The extra headers. It's used when the <parameter>message_type</parameter>
       parameter is set to <literal>1</literal>.
       This message type uses the same internal function as 
       <function>mail</function> does.
      </para>
     </listitem>
    </varlistentry>
   </variablelist>
  </para>
 </refsect1>

 <refsect1 role="returnvalues">
  &reftitle.returnvalues;
  <para>
   &return.success;
  </para>
 </refsect1>

 <refsect1 role="examples">
  &reftitle.examples;
  <para>
   <example role="php">
    <title><function>error_log</function> examples</title>
    <programlisting role="php">
<![CDATA[
<?php
// Send notification through the server log if we can not
// connect to the database.
if (!Ora_Logon($username, $password)) {
    error_log("Oracle database not available!", 0);
}

// Notify administrator by email if we run out of FOO
if (!($foo = allocate_new_foo())) {
    error_log("Big trouble, we're all out of FOOs!", 1,
               "operator@example.com");
}

// other ways of calling error_log():
error_log("You messed up!", 2, "127.0.0.1:7000");
error_log("You messed up!", 2, "loghost");
error_log("You messed up!", 3, "/var/tmp/my-errors.log");
?>
]]>
    </programlisting>
   </example>
  </para>
 </refsect1>
</refentry>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->