2015-04-28 51 views
2

我有一個簡單的Web服務需要記錄每個請求。 爲此,我使用CakePHP的自定義日誌引擎:在CakePHP中更改自定義日誌的路徑

$this->log('Log of the request.', 'myLog'); 

此日誌文件位於app/tmp/logs/myLog.log

的問題是:我需要在我的網站上顯示該日誌。有沒有辦法在CakePHP中更改自定義日誌的位置?

我讀,我可以使用的文件上:

CakeLog::config('custom_directory', array(
    'engine' => 'FileLog', 
    'path' => 'webroot/my-logs/' 
)); 

但我只希望我的日誌保存在該自定義目錄中,不是每個日誌。

也許我錯過了什麼?

在此先感謝您的幫助。

回答

2

嗯,簡單地說,在記錄日誌條目後,將文件複製到所需的目的地。

即:

$this->log('Log of the request.', 'myLog'); 
// copy file code here 

結帳copy()文檔

注意,這是更好,更容易使用絕對系統路徑的源和目標。

+0

我想避免使用複製,因爲需要絕對路徑,但我認爲這將是我的最佳選擇。謝謝! – hg8

+1

絕對路徑根本沒有問題,有'CakePHP'常量提供給基路徑。我認爲它是'ROOT',你可以在'webroot/index.php'找到它的定義。 – SaidbakR

+1

確實。我打算使用它。太糟糕了,沒有內置函數來重定向日誌文件。 – hg8

1

我不知道你是否可以做一個單一的日誌文件,但它發生在我身上,或許是從日誌到webroot的一個符號鏈接。

ln -s /var/www/app/tmp/logs/myLog.log /var/www/app/webroot/my-logs/ 
+1

感謝您的回答。這是一個好主意,但問題是我對每個請求都有一個新的日誌文件。 – hg8