流明日志

时间:2015-09-01 00:22:51

标签: php laravel lumen

我想在我的Lumen项目中添加每日日志。

我在app.php(Folder Bootstrap /)

中尝试这个
$logFile = 'laravel.log';

Log::useDailyFiles(storage_path().'/logs/'.$logFile);

但是这给我带来了错误

调用未定义的方法Monolog \ logger :: useDailyFiles()

我感谢任何帮助......谢谢

3 个答案:

答案 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版开始,配置日志记录系统要容易得多:

  1. 在您的项目中创建目录配置(如果不存在)
  2. 从以下位置复制日志记录配置文件 供应商/laravel/lumen-framework/config/logging.php到您的项目配置目录

  3. 编辑文件config / logging.php并根据自己的喜好调整channels属性。

 "replaceImage": {
    "imageObjectId": IMAGE_ID",
    "uri": REPLACED_IMAGE_URL,
    "imageReplaceMethod": IMAGE_REPLACE_METHOD,
     }
相关问题