Einige schnelle Forschung zeigt, dass ein sauber Methode, um die TMP
Konstante neu zu definieren wäre (standardmäßig define('TMP', APP.'tmp'.DS)
) in /app/webroot/index.php
-zu-Punkt das gesamte Temp-Verzeichnis irgendwo anders. Dies ist keine gute Lösung, wenn der Ordner jedoch geteilt werden soll, da verschiedene Apps mit ihren temporären Dateien auf die Füße treten können.
Die einzige offensichtliche Möglichkeit, nur das Protokollverzeichnis an einer anderen Stelle zu zeigen, scheint /cake/config/paths.php
zu bearbeiten.
Wenn Sie nur das schnelle Überfliegen von Protokolldateien verschiedener Anwendungen erreichen möchten, können Sie einfach mehrere Symlinks zu diesen Protokollen in ein Verzeichnis einfügen.
Oder andersherum können Sie jeden Ordner /app/tmp/logs
einen Symlink zu einem freigegebenen Ordner machen. Ich bin mir nicht sicher, ob ich das empfehlen würde. Wenn Sie unterschiedliche Apps in dasselbe Protokoll schreiben, kann das verwirrend werden, da Sie nicht immer sicher sein können, von welcher App eine Nachricht stammt.
Das Problem besteht darin, dass es immer noch im Ordner/tmp/logs für jeden Server, auf dem sich die Anwendung befindet, speichert (stellen Sie sich vor, Sie beschäftigen sich mit einem Lastenausgleich mit 10 Servern). Das würde helfen, zu identifizieren, aber wie kann man an einem einzigen Ort speichern, der allen gemeinsam ist? – Mcloide
Ich würde vermuten, dass Sie es einen vollständigen Dateipfad, anstatt einen relativen geben können, und es wird es überall in dem Dateisystem, das Sie möchten, speichern. In einer Situation mit Lastenausgleich benötigen Sie entweder eine gemeinsame NFS-Freigabe, einen anderen Protokollierungsmechanismus (syslogd unterstützt die Netzwerkprotokollierung und kann mit PHP verbunden sein) oder die Protokollierung mit einem Datenbanksystem. Etwas, mit dem Sie über das Netzwerk schreiben können, ist für eine Multiserver-Protokollierung erforderlich. –
Eigentlich einen Ausweg gefunden. Definieren Sie einen neuen Logger und senden Sie die zu speichernden Logs an die Datenbank. Erzeugt einen enormen Overhead, funktioniert aber. Eine Lösung ähnlich Log4PHP – Mcloide