问题描述
我想将流水日志添加到我的Lumen项目中.
I want to add to my Lumen project a daily Log.
我在app.php(Folder Bootstrap/)中尝试
I try this in the app.php (Folder Bootstrap/)
$logFile = 'laravel.log';
Log::useDailyFiles(storage_path().'/logs/'.$logFile);
但这给我带来了那个错误
But this set me that error
调用未定义的方法Monolog \ logger :: useDailyFiles()
Call to undefined method Monolog\logger::useDailyFiles()
任何帮助,我都感激...谢谢
Any help I appreciate...Thanks
推荐答案
如果您查看框架源代码在此,您会看到它不会执行每日日志,而是写入单个日志文件lumen.log
.在此处并引用了此处在不扩展应用程序的情况下覆盖默认行为.
If you look at the framework source code here you can see that it will not do daily logs, but rather write to a single log file lumen.log
. There is a public method available configureMonologUsing
seen here and referenced here that you can use to override the default behavior without extending the Application.
Lumen只是将处理程序设置为独白,因此另一个好的解决方案是您可以这样做:
Lumen just sets a handler to monolog, so another good solution is you could do this:
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Monolog\Formatter\LineFormatter;
use Monolog\Handler\RotatingFileHandler;
class LogServiceProvider extends ServiceProvider
{
/**
* Configure logging on boot.
*
* @return void
*/
public function boot()
{
$maxFiles = 5;
$handlers[] = (new RotatingFileHandler(storage_path("logs/lumen.log"), $maxFiles))
->setFormatter(new LineFormatter(null, null, true, true));
$this->app['log']->setHandlers($handlers);
}
/**
* Register the log service.
*
* @return void
*/
public function register()
{
// Log binding already registered in vendor/laravel/lumen-framework/src/Application.php.
}
}
然后别忘了将服务提供商添加到您的Lumen bootstrap/app.php:
Then don't forget to add the service provider to your Lumen bootstrap/app.php:
$app->register(\App\Providers\LogServiceProvider::class);
这篇关于流明日报的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!