xmlrpc Log File in WordPress einschalten

WordPress kommt in seinem Standard mit der Möglichkeit, ein xmlrpc Log File schreiben zu lassen und damit die eingehenden Trackbacks und Pingbacks etwas genauer unter die Lupe nehmen zu können. So sind in dem xmlrpc Log File alle eingehenden Aktivitäten verzeichnet, egal ob sie zum Erfolg führten oder nicht. Hin und wieder kann dieses xmlrpc Log File recht hilfreich sein, wenn es darum geht nicht ankommenden Trackbacks und Pingbacks auf die Spur zu kommen.

Ich werde hin und wieder gefragt, ob die versendeten Pingbacks bei mir überhaupt angekommen sind, oder auch warum ich gesendete Pingbacks nicht frei schalte. An dieser Stelle spreche ich absichtlich nur von Pingbacks, da Trackbacks, die ohne Verlinkung sind, vom Plugin Simple Trackback Validation sowieso abgewiesen werden.

Wie wir ja alle wissen ist WordPress nicht immer zuverlässig, was das Versenden von Pingbacks und Trackbacks betrifft. In den meisten Fällen ist meiner Erfahrung nach das Überschreiten des Memory Limits des Servers beim Abarbeiten des WordPress internen Cronjobs für das Versenden von Pings, Pingbacks und Trackbacks schuld. Es können aber sicherlich auch noch andere Fehlerquellen in Betracht kommen.

Gestern fragte mich Marcus, ob ich mal nachsehen könnte, ob seine Pingbacks bei mir angekommen sind und gab mir als Beispiel seinen Artikel Wider dem Linkgeiz. Der erste Blick in meine Kommentarliste zeigte an, dass hier kein Pingback von Marcus in dem in Betracht kommenden Zeitraum eingegangen ist.

Den zweiten Blick bei solchen Fragen werfe ich in das Log des Plugins Simple Trackback Validation. Dort werden bei aktiviertem Logging die letzten 50 Trackback Aktionen aufgezeichnet. Auch hier konnte ich in dem in Betracht kommenden Zeitraum keinen Eintrag für Marcus Verlinkungen aus seinem Artikel finden. An dieser Stelle muss ich noch erwähnen, dass ich das Plugin auf abweisen (discard) gestellt habe, so dass ich von nicht den Bestimmungen entsprechenden Trackbacks nichts mitbekomme. Sie werden einzig und alleine in den Log Dateien aufgeführt.

Um Marcus mit weiteren Informationen unterstützen zu können, fiel mein dritter und letzter Blick in das eingangs erwähnte xmlrpc Log File. Hier sind ja alle eingehenden Aktionen aufgeführt, egal ob sie zum Erfolg führten oder nicht. Leider ist es bei WordPress recht häufig der Fall, dass hier komplett leere Einträge stehen. Das sind Fehlversuche einen Pingback oder Trackback zu senden, der aber komplett ohne Inhalt kommt. In meinen Augen liegt auch hier wieder die häufigste Fehlerquelle im überschrittenen Memory Limit des Cronjobs beim Sender. In solchen Fällen bekommt der entsprechende WordPress Blog noch was rausgeschickt, aber eben nicht vollständig, so dass der Empfänger das nicht verarbeiten kann. Wer denkt das käme selten vor, sollte mal einen Blick in mein xmlrpc Log File werfen. Täglich stehen so einige dieser leeren Einträge drin, z.B.:

2011-04-11 21:16:38  Input:
2011-04-11 22:26:35  Input:
2011-04-12 09:05:17  Input:
2011-04-12 09:48:00  Input:
2011-04-12 10:08:51  Input: 

Ein vollständiger Pingback sieht im xmlrpc Log File dagegen so aus:

2011-04-13 06:48:47  Input: <?xml version="1.0"?>
<methodCall>
<methodName>pingback.ping</methodName>
<params>
<param><value><string>http://hanseblogger.de/2011/04/blogger-sollten-danke-sagen/</string></value></param>
<param><value><string>http://www.crazytoast.de/plugin-recent-trackbacks-pingbacks-sidebar-widget.html</string></value></param>
</params></methodCall>

2011-04-13 06:48:47  Output: (PB) URL='http://www.crazytoast.de/plugin-recent-trackbacks-pingbacks-sidebar-widget.html' ID='16915' Found='url_to_postid()'

xmlrpc Log File in WordPress einschalten

Nun aber zum Hauptpunkt dieses Artikels, dem xmlrpc Log File, und wie man es in WordPress einschalten kann. Diese Logging Möglichkeit ist zwar im WordPress Standard enthalten, doch sie ist deaktiviert, so dass von selbst kein Log File geschrieben wird. Der Blogger muss das Logging einschalten, um das xmlrpc Log File schreiben zu lassen. Und das wiederum geht auch nicht im Adminbereich, sondern nur mit einer WordPress Core Änderung.

Um das xmlrpc Log File in WordPress einzuschalten braucht es erst mal eine Datei für das Log File. Dazu einfach eine leere Textdatei mit dem Namen xmlrpc.log (oder einem beliebigen anderen Namen) erstellen und am Server in der WordPress Installation abspeichern. Ich persönlich nehme für das Log File auch einen gesonderten Ordner, den ich dafür erstelle. Weiter muss dieses Log File (und der Ordner, falls er erstellt wurde), mit Schreibrechten am Server versehen werden, so dass WordPress dort auch rein schreiben kann.

Ist dieser Schritt erledigt, muss in WordPress noch das Logging aktiviert und mitgeteilt werden, wo sich das xmlrpc Log File befindet. Dafür kommt die WordPress Core Datei xmlrpc.php zum Einsatz. Diese öffnen und ca. ab Zeile 67 finden sich folgende Einträge:

 /**
 * Whether to enable XMLRPC Logging.
 *
 * @name xmlrpc_logging
 * @var int|bool
 */
$xmlrpc_logging = 0;

/**
 * logIO() - Writes logging info to a file.
 *
 * @uses $xmlrpc_logging
 * @package WordPress
 * @subpackage Logging
 *
 * @param string $io Whether input or output
 * @param string $msg Information describing logging reason.
 * @return bool Always return true
 */
function logIO($io,$msg) {
	global $xmlrpc_logging;
	if ($xmlrpc_logging) {
		$fp = fopen("../xmlrpc.log","a+");
		$date = gmdate("Y-m-d H:i:s ");
		$iot = ($io == "I") ? " Input: " : " Output: ";
		fwrite($fp, "\n\n".$date.$iot.$msg);
		fclose($fp);
	}
	return true;
}

Durch den Eintrag $xmlrpc_logging = 0; ist im WordPress Standard das Logging deaktiviert. Wer das Logging einschalten möchte, muss hier die 0 mit einer 1 ersetzen: $xmlrpc_logging = 1;

Weiter unten findet sich der Eintrag $fp = fopen("../xmlrpc.log","a+");, welcher das xmlrpc Log File öffnet. An dieser Stelle muss eingetragen werden, wie das eigene Log File heißt und wo es sich befindet. Der Standard Eintrag öffnet das Log File mit dem Namen xmlrpc.log im WordPress Hauptverzeichnis. Liegt das Log File aber in einem Ordner, wäre der entsprechende Eintrag z.B. $fp = fopen("ordner/xmlrpc.log","a+");

Das war es dann auch schon, damit ist das Logging aktiviert und das xmlrpc Log File wird zukünftig befüllt. Der einzige Haken an der Sache könnte sein, dass nicht alle Server es erlauben mit fopen zu arbeiten. Am Server muss allow_url_fopen auf ON stehen, damit das xmlrpc Log File auch befüllt werden kann.

Weiter sollte der Vollständigkeit halber auch noch hinzugefügt werden, dass das xmlrpc Log File mit der Zeit recht groß werden kann. Hin und wieder alte Einträge dort raus löschen könnte also von Vorteil sein.

Twittern
4
Facebook Share
0
Google +1
0
= Werbung
| |
Trackback URL: http://www.crazytoast.de/xmlrpc-log-file-in-wordpress-einschalten.html/trackback/
Ähnliche Beiträge:
↑ Ganz nach oben springen ↑
↓ zum kommentieren springen ↓
7 Reaktionen:
2 Trackbacks:
  1. [...] sind wieder gemischt, so dass für die meisten etwas interessantes dabei sein sollte.WordPressxmlrpc Log File in WordPress einschalten – Wenn es Probleme mit Track- und Pingbacks in WordPress gibt, ist das Log File sehr [...]

  2. [...] ich mich per Mail an Tanja gewandt. Und sie hat sich prompt hingesetzt, um auf ihrem Blog einen Artikel zu schreiben, der erklärt, wie man ein Log für die xmlrpc-Funktion anlegt. Denn standardmäßig [...]

5 Kommentare:
  1. Marcus schrieb am 13. April 2011 um 10:42 Uhr:
    # 1

    Danke ersteinmal für die Erklärungen, Tanja!

    Ich hab die erweiterte Version des Plugins Simple Trackback Validation – Simple Trackback Validation with Topsy Blocker – das mir wohl die Schwierigkeiten machte.

    Zumindest brachte das Teil bei Stefans Prüf-Tool eine Fehlermeldung.

    Nun schau ich mal, obs soweit alles funzt.

  2. Marcus schrieb am 13. April 2011 um 15:33 Uhr:
    # 2

    Es scheint soweit wieder zu funktionieren!

    Aber welche Rechte muss ich auf Ordner und Datei vergeben? Reicht 755 oder muss beides 777 haben?

  3. Tanja schrieb am 13. April 2011 um 20:13 Uhr:
    # 3

    @Marcus: Bei meinen Server Konfigurationen muss ich immer 777 nehmen. Deswegen finde ich es auch so wichtig die Datei anders zu benennen als im Standard und einen Ordner zu nehmen.

  4. Tobsen schrieb am 17. April 2011 um 17:22 Uhr:
    # 5

    Hierfür wäre es ja echt chillig, wenn man einen SSH Zugang zum Server hat, da kann man direkt auf der Konsole die Änderungen vornehmen. Aber geht ja auch ganz einfach lokal und dann per FTP. :)
    Aber da mir die Zeit fehlt Logs durchzuschauen, brauch ich das Ganze eigentlich auch nicht.

  5. Thomas schrieb am 17. April 2011 um 18:41 Uhr:
    # 6

    Das werde ich mir jetzt auch mal näher ansehen, bzw. installiert habe ich das bereits. Bin mal gespannt was das Log alles so “unten” auswirft, was “oben” nie zu sehen war….. :-) .

Einen Kommentar dazu schreiben:

Dieser Artikel ist älter als 30 Tage! Aufgrund des hohen Spam Aufkommens wurde die Möglichkeit Kommentare mit Link zu hinterlassen deaktiviert!

Bitte beachtet die Datenschutzhinweise.

Ich behalte mir das Recht vor, Kommentare entsprechend zu löschen oder editieren!


Kommentare abonnieren ohne selbst einen Kommentar abzugeben: