Phing: Remote Tasks Loggen
Was in lokalen Phing Tasks abläuft wird bekanntlich in der Konsole angezeigt. So weiss man auch gleich den Grund falls ein Task scheitert.
Hat man nun aber einen Remote Task, läuft dieser auf dem Server ohne das wir etwas mitbekommen. Scheitert ein Task wüssten wir nicht gleich genau wieso. Um dies nun aber zu Loggen, bietet Phing hier einen Parameter der beim Aufrufen mitgegeben werden kann.
Nehmen wir an wir machen z.B. ein PHP exec():
exec("phing testTask -logfile log.txt");
Nun wird alles was auf dem Server passiert in das Logfile “log.txt” geschrieben. Dies geschieht natürlich auch auf dem Server.
Natürlich funktioniert dies auch mit dem Phing exec Task:
<exec dir="/home/" command="phing testTask -logfile LOG.txt" />
Nachtrag:
Mittlerweile habe ich endlich herausgefunden wie Remote Logs geloggt werden können, welche jedoch nicht mit exec ausgeführt werden. D.h. Phing wird nur temporär auf dem Remote Server sein und per PHP gestartet.
So funktionierts:
// ...
Phing::startup();
Phing::fire(array('-logfile', 'LOG.txt'));
Phing::shutdown();
// ..
Dies ist nur ein kurzer Auszug aus dem Script welches wir aufrufen um Phing auf dem Remote Server zu starten. Wie man aber sehen kann, wird dem “fire” ein Array mitgegeben, in welchem man alle Anweisungen welche wir vom exec kennen mitgeben kann. Diese Optionen findet ihr hier.