1
0
mirror of https://github.com/php/doc-zh.git synced 2026-03-24 15:12:20 +01:00
Files
魔王卷子 a49b6b6095 part 2 of the errorfunc (#343)
* Update debug-backtrace.xml

* Update debug-print-backtrace.xml

* Update error-clear-last.xml

* Update error-get-last.xml

* Update error-log.xml

* Update restore-error-handler.xml

* Update restore-exception-handler.xml

* Update set-error-handler.xml

* Update set-exception-handler.xml

* Update trigger-error.xml

* Update set-exception-handler.xml

* Update restore-exception-handler.xml
2022-09-20 23:16:28 +08:00

209 lines
6.3 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 769812c12f00c1978bf7dd711dca38dbf05462da Maintainer: daijie Status: ready -->
<!-- CREDITS: mowangjuanzi -->
<refentry xml:id="function.error-log" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>error_log</refname>
<refpurpose>发送错误信息到某个地方</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><initializer>0</initializer></methodparam>
<methodparam choice="opt"><type class="union"><type>string</type><type>null</type></type><parameter>destination</parameter><initializer>&null;</initializer></methodparam>
<methodparam choice="opt"><type class="union"><type>string</type><type>null</type></type><parameter>additional_headers</parameter><initializer>&null;</initializer></methodparam>
</methodsynopsis>
<para>
把错误信息发送到 web 服务器的错误日志,或者到一个文件里。
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>message</parameter></term>
<listitem>
<para>
应该被记录的错误信息。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>message_type</parameter></term>
<listitem>
<para>
设置错误应该发送到何处。可能的信息类型有以下几个:
</para>
<para>
<table>
<title><function>error_log</function> 日志类型</title>
<tgroup cols="2">
<tbody>
<row>
<entry>0</entry>
<entry>
<parameter>message</parameter> 发送到 PHP 的系统日志,使用
操作系统的日志机制或者一个文件,取决于
<link linkend="ini.error-log">error_log</link> 指令设置了什么。
这是个默认的选项。
</entry>
</row>
<row>
<entry>1</entry>
<entry>
<parameter>message</parameter> 发送到参数 <parameter>destination</parameter>
设置的邮件地址。
第四个参数 <parameter>additional_headers</parameter> 只有在这个类型里才会被用到。
</entry>
</row>
<row>
<entry>2</entry>
<entry>
不再是一个选项。
</entry>
</row>
<row>
<entry>3</entry>
<entry>
<parameter>message</parameter> 被发送到位置为 <parameter>destination</parameter> 的文件里。
字符 <parameter>message</parameter> 不会默认被当做新的一行。
</entry>
</row>
<row>
<entry>4</entry>
<entry>
<parameter>message</parameter> 直接发送到 SAPI 的日志处理程序中。
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>destination</parameter></term>
<listitem>
<para>
目标。它的含义描述于以上,由
<parameter>message_type</parameter> 参数所决定。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>additional_headers</parameter></term>
<listitem>
<para>
额外的头。当 <parameter>message_type</parameter>
设置为 <literal>1</literal> 的时候使用。
该信息类型使用了 <function>mail</function> 的同一个内置函数。
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;如果 <parameter>message_type</parameter> 是 0此函数始终返回
&true;,无论是否可以记录错误。
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.0.0</entry>
<entry>
现在 <parameter>destination</parameter>
<parameter>additional_headers</parameter> 允许为 null。
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example role="php">
<title><function>error_log</function> 范例</title>
<programlisting role="php">
<![CDATA[
<?php
// 如果无法连接到数据库,发送通知到服务器日志
if (!Ora_Logon($username, $password)) {
error_log("Oracle database not available!", 0);
}
// 如果用尽了 FOO通过邮件通知管理员
if (!($foo = allocate_new_foo())) {
error_log("Big trouble, we're all out of FOOs!", 1,
"operator@example.com");
}
// 调用 error_log() 的另一种方式:
error_log("You messed up!", 3, "/var/tmp/my-errors.log");
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<warning>
<simpara>
<function>error_log</function> 并非二进制安全的。null 字符可能截断 <parameter>message</parameter>
</simpara>
</warning>
<tip>
<simpara>
<parameter>message</parameter> 不能包含 null 字符。注意,<parameter>message</parameter>
可能会发送到文件、邮件、syslog 等。所以在调用 <function>error_log</function>
前需要使用适合的转换/转义函数:<function>base64_encode</function><function>rawurlencode</function><function>addslashes</function>
</simpara>
</tip>
</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:"~/.phpdoc/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
-->