2017-10-21 125 views
1

我正在爲Laravel應用程序編寫測試,專門用於在控制檯上寫入大量日誌消息的過程。如何禁止在phpunit測試運行時在控制檯上顯示應用程序日誌消息?

例如

Log::info('Process starts', [ 
    'process_name' => 'product_import', 
    'data' => // a huge text containing json_encode of the given message object 
] 

當我運行phpunit時,我在控制檯上看到所有這些惱人的日誌消息。有沒有辦法禁用或以某種方式停止這些日誌消息?

回答

1

您可以在phpunit.xml文件中設置環境變量。

如果增加日誌級別注意到它應防止信息通知被輸出

<php> 
    <env name="APP_ENV" value="testing"/> 
    <env name="CACHE_DRIVER" value="array"/> 
    <env name="SESSION_DRIVER" value="array"/> 
    <env name="QUEUE_DRIVER" value="sync"/> 
    <env name="APP_LOG_LEVEL" value="notice"/> 
</php> 

如果您使用Laravel 5.2或以上,沒有APP_LOG_LEVEL環境變量, 但你可以門坎introduce your own env variable and configure Monolog in your app service provider

+0

該應用程序基於Laravel 5.1。我不認爲這個版本有應用程序日誌級別的配置:( –

+0

@ArminSam env變量在5.3中引入我相信這個解決方案仍然可以工作,但是你需要引入你自己的env變量並在你的配置文件中配置Monolog應用服務提供商。 –

相關問題