Einführung in die Verwendung der PHP-Funktion error_log()

怪我咯
Freigeben: 2023-03-13 12:00:01
Original
1598 Leute haben es durchsucht

Die Funktion

error_log() sendet eine Fehlermeldung an das Server-Fehlerprotokoll, eine Datei oder ein Remote-Ziel. Seine Syntax

error_log(message,type,destination,headers);
Nach dem Login kopieren
ParameterBeschreibung < /th>
NachrichtErforderlich. Gibt die zu protokollierende Fehlermeldung an.
Typ
参数描述
message必需。规定要记录的错误消息。
type

可选。规定错误应该发送到何处。可能的值:

  • 0 - 默认。消息被发送到 PHP 的系统日志,使用操作系统的日志机制或者一个文件,取决于 php.ini 中如何 error_log 指令。

  • 1 - 消息被发送到参数 destination 设置的邮件地址。第四个参数 extra_headers 只有在这个类型里才会被用到。

  • 2 - 不再使用(仅用在 PHP 3 中)

  • 3 - 消息被发送到位置为 destination 的文件里。字符 message 不会默认被当做新的一行。

  • 4 - 消息被直接发送到 SAPI 日志处理程序中。

destination可选。规定错误消息的目标。该值由 type 参数的值决定。
headers

可选。规定额外的头,比如 From、Cc 和 Bcc。该信息类型使用了 mail() 的同一个内置函数

仅当 message_type 设置为 1 的时候使用。

应当使用 CRLF (rn) 来分隔多个头。

Optional. Gibt an, wohin Fehler gesendet werden sollen. Mögliche Werte:

  • 0 – Standard. Nachrichten werden an das Systemprotokoll von PHP gesendet, wobei der Protokollierungsmechanismus des Betriebssystems oder eine Datei verwendet wird, abhängig von der error_log-Direktive in php.ini.

  • 1 – Die Nachricht wird an die E-Mail-Adresse gesendet, die durch den Parameter destination festgelegt ist. Der vierte Parameter extra_headers wird nur in diesem Typ verwendet.
  • 2 – Nicht mehr verwendet (wird nur in PHP 3 verwendet)
    function logError($object)
    {
     if(DB::isError($object))
     {
      error_log(date("[Y-m-d H:i:s]")." -[".$_SERVER[&#39;REQUEST_URI&#39;]."] :".$object -> userinfo."\n", 3, "/tmp/php_sql_err.log");
      return true;
     }
     return false;
    }
    Nach dem Login kopieren
  • 3 – Nachricht wird an den Standort Ziel< gesendet /em>s Datei. Das Zeichen message wird standardmäßig nicht als neue Zeile behandelt.

  • 4 – Die Nachricht wird direkt an den SAPI-Log-Handler gesendet.

ZielOptional. Gibt das Ziel der Fehlermeldung an. Der Wert wird durch den Wert des Parameters type bestimmt.
Header

Optional. Gibt zusätzliche Header wie From, Cc und Bcc an. Dieser Nachrichtentyp verwendet dieselbe integrierte Funktion

wie mail().
function getNewsContent($news_id, $field="")
{
 global $db;
 $result = $db->getRow("SELECT $field FROM news WHERE news_id = &#39;$news_id&#39;");
 if (logError($result))
 {
  return false;
 }
 return $result;
}
Nach dem Login kopieren

Wird nur verwendet, wenn message_type auf 1 gesetzt ist.

CRLF (rn) sollte verwendet werden, um mehrere Header zu trennen.

Tatsächlich ist es für uns der Einfachheit halber im Allgemeinen angemessener, Typ 3 direkt zum Protokollieren zu verwenden Datei an die gewünschte Stelle in der Datei.
Um die einfache Verwendung der Funktion error_log() zu veranschaulichen, nehmen wir ein Beispiel. Angenommen, unsere Datenbank
abstrakte Klasse

verwendet die Klasse PEAR::DB. Jetzt möchte ich aufzeichnen, ob unser Programm Ausführungsfehler aufweist. Dann verwenden wir error_log(), um die Ausführungsfehler oder -fehler unserer SQL-Anweisungen aufzuzeichnen. Zumindest stellt unsere PEAR::DB-Klasse die Methode DB::isError() bereit, um zu ermitteln, ob in einem Ausführungsergebnisobjekt ein Fehler vorliegt Sie können feststellen, ob beim Ausführen einer bestimmten SQL-Anweisung ein Fehler aufgetreten ist, und dann überlegen, ob das Protokoll aufgezeichnet werden soll. Gleichzeitig verfügt das Objekt über ein Userinfo-Attribut, das die falsche SQL-Anweisung aufzeichnet. Dann können wir eine solche Funktion erstellen:

Diese Funktion kann den Ort aufzeichnen, an dem das falsche SQL gefunden wurde, und dann automatisch die Zeit, die aktuelle Seite und falsche SQL-Anweisungsinformationen im

/tmp/php_sql_err.log

aufzeichnen Wenn wir dann beim Debuggen des Programms feststellen, dass die Datenextraktion falsch ist oder keine Datenextraktion erfolgt, können wir die Datei /tmp/php_sql_err.log anzeigen, um unsere Fehlerseite und die falsche SQL-Anweisung anzuzeigen.

Natürlich müssen wir diese Funktion in dem Programm verwenden, in dem wir SQL-Abfragen ausführen. Wenn wir beispielsweise eine Funktion zum Extrahieren von Nachrichteninformationen schreiben:


Darin bestimmen wir, ob Wenn der SQL-Fehler vorliegt, wird „false“ zurückgegeben. Anschließend können wir das Protokoll überprüfen, um festzustellen, ob unsere Funktion wie erwartet ausgeführt wird. Wir führen Folgendes aus: tail /tmp/php_sql_err.logSie können ähnliche Informationen wie diese sehen:

<code>
            $address    = post(&#39;address&#39;);
            $group_add  = explode(&#39;,&#39;,$address);

            $url   ="/usr/local/apache/eyoung/tmp/maillog_".date("Y-m-d").".log";

            foreach($group_add as $value)
            {
                    /** {{{ modify by muzhaoyang -2006.12.13- 记log
                      *  已空格分隔数据,记录的数据为写文本时间 拉票人ID 选手ID 发信地址
                      */
                      $logstr=date("H:i:s")." ".$uid." ".$star_uid." ".$value."\n";
                      error_log($logstr,3,$url);
                    //}}}
             }

</code>
Nach dem Login kopieren

[2006-01-12 11:44:34] -[/news_list . php?news_id=1] :SELECT FROM news WHERE news_id = '1' [nativecode=1064 ** Sie haben einen Fehler in Ihrer SQL-Syntax; überprüfen Sie das Handbuch, das Ihrer MySQL-Serverversion entspricht, um die richtige Syntax zu finden use near 'FROM news WHERE news_id = '1']
Das liegt wahrscheinlich daran, dass wir bei der Auswahl nicht die Feldnamen geschrieben haben, die extrahiert werden müssen, dann können wir die Datei news_list.php überprüfen In der Datei übergibt die Funktionsmethode getNewsContent () den Parameter $field nicht, was zu einem SQL-Ausführungsfehler führt. Daher hilft die Funktion error_log() zu überprüfen, ob unser SQL korrekt geschrieben ist oder ob die Parameter nicht korrekt übergeben werden. Dies reduziert den Entwicklungsaufwand erheblich und ermöglicht uns die Durchführung von

Unit-Tests unseres Programms. Natürlich können Sie auch die Funktion error_log() verwenden, um weitere Fehlerprotokolle aufzuzeichnen, um die PHP-Entwicklung zu erleichtern. Dies liegt ganz bei Ihnen. Ich habe es verwendet, um in dieser Arbeit einfache Protokolle aufzuzeichnen

Das obige ist der detaillierte Inhalt vonEinführung in die Verwendung der PHP-Funktion error_log(). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage