我在從控制檯記錄某些基本信息行時遇到問題。在本地,這項工作正常,所有事情都從Web和控制檯記錄(錯誤,信息消息)。但在服務器上,錯誤記錄工作正常,但是當我自己調用記錄器並嘗試記錄某些信息消息時,它不起作用。Monolog無法在服務器上的Laravel控制檯上工作
我正在使用Laravel 5.4版本。
這是用於測試目的的一些App \ Console \ Commands \ DummyCommand類。
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Log\Writer as Log;
class DummyCommand extends Command
{
/**
* Create a new console command instance.
*
* @param \Illuminate\Log\Writer $log
* @return void
*/
public function __construct(Log $log)
{
parent::__construct();
$this->log = $log;
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
$message = "Some dummy message";
$this->info($message); // gets printed on console both locally and on server
$this->log->info($message);
$ret = $this->log->getMonolog()->addInfo($message);
dump($ret); // locally = true, server = false
if ($ret === false) {
throw new \Exception('Error while logging!'); // this log works fine both locally and on server
}
}
}
我在服務器上運行的以下內容:
php artisan dummy // prints "Some dummy message" and loggs error message "Error while logging!"
php artisan schedule:run // same thing as above
任何想法,這是爲什麼不工作? 存儲文件夾權限適用於所有文件夾和文件。錯誤消息(例外)被記錄,但信息消息不記錄。
編輯: 這是工作,我需要在調用$ this-> log-> info()之前添加以下行。但是我無法使用所有命令,每次都需要設置日誌文件的路徑。 (來源:https://laracasts.com/discuss/channels/general-discussion/logging-in-l5/replies/11771)
$this->log->useDailyFiles(storage_path().'/logs/laravel.log');