我想在我的Lumen项目中添加每日日志。
我在app.php(Folder Bootstrap /)
中尝试这个$logFile = 'laravel.log';
Log::useDailyFiles(storage_path().'/logs/'.$logFile);
但是这给我带来了错误
调用未定义的方法Monolog \ logger :: useDailyFiles()
我感谢任何帮助......谢谢
答案 0 :(得分:10)
如果查看框架源代码here,您会发现它不会执行每日日志,而是写入单个日志文件lumen.log
。有一个公共方法可用configureMonologUsing
看到here并引用here,您可以使用它来覆盖默认行为而不扩展应用程序。
Lumen只是为monolog设置了一个处理程序,所以另一个好的解决方案是你可以这样做:
<?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:
$app->register(\App\Providers\LogServiceProvider::class);
答案 1 :(得分:1)
在Lumen 5.6中,更好的方法是将.env中的默认设置配置为LOG_CHANNEL=daily
默认情况下,设置为LOG_CHANNEL=stack
,它使用单个文件进行记录。
答案 2 :(得分:0)
从5.6版开始,配置日志记录系统要容易得多:
从以下位置复制日志记录配置文件 供应商/laravel/lumen-framework/config/logging.php到您的项目配置目录
编辑文件config / logging.php并根据自己的喜好调整channels属性。
"replaceImage": {
"imageObjectId": IMAGE_ID",
"uri": REPLACED_IMAGE_URL,
"imageReplaceMethod": IMAGE_REPLACE_METHOD,
}