簡體   English   中英

Laravel Log useFiles方法使Log寫入多個文件

[英]Laravel Log useFiles method is making Log write in multiple files

我在我的應用程序中使用Laravel Log Facade 我有幾個服務,如Mandrill,Twilio,Stripe等,需要記錄在單獨的文件中。 但是當我使用Log :: useFiles()為其中一個服務包裝類設置單獨的文件時,如下所示:

Class Mailer
{
    static function init()
    {
        Log::useFiles(storage_path('logs/mandrill-'.date("Y-m-d").'.log'));
    }

    static function send()
    {
        // some code here...

        Log::error("Email not sent");
    }
}

我最終會在Laravel日志文件和此Mandrill日志文件中寫入日志。

有沒有辦法告訴Log只在一個文件中寫日志?

它通常很奇怪,因為當我直接使用Monolog時 ,它只能在一個文件中寫入。 據我所知,Log Facade正在使用Monolog。

首先,請記住,如果您更改Mailer類中的日志處理程序,您將為整個應用程序更改它們。

其次,在您更改后將日志寫入2個文件的原因是useFiles()不會覆蓋默認的日志處理程序,但會向Monolog將使用的處理程序添加新的處理程序。 因此,您只需向列表中添加第二個處理程序,它們都會通過將日志消息保存到不同的文件來處理日志消息。

第三,Laravel的Log facade沒有提供替換默認處理程序的方法 - 如果你想使用它,你需要直接使用Monolog 您可以通過調用Log :: getMonolog()來訪問它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM