6

流明日志被写入/storage/logs并默认命名为lumen.log. 如何更改文件名说xyz.log

4

3 回答 3

11

如评论中所述,日志文件的位置和名称是硬编码的。

现在,如果出于某种令人信服的原因您想要更改它,您可以随时扩展Laravel\Lumen\Application类并覆盖getMonologHandler()方法。

Application.phpapp看起来像的文件夹中创建一个新文件

namespace App;

use Laravel\Lumen\Application as LumenApplication;
use Monolog\Formatter\LineFormatter;
use Monolog\Handler\StreamHandler;
use Monolog\Logger;

class Application extends LumenApplication
{
    protected function getMonologHandler()
    {
        return (new StreamHandler(storage_path(env('APP_LOG_PATH', 'logs/xyz.log')), Logger::DEBUG))
            ->setFormatter(new LineFormatter(null, null, true, true));
    }
}

现在改变

$app = new Laravel\Lumen\Application(

$app = new App\Application(

bootstrap\app.php文件中

瞧,您的日志文件现在称为xyz.log. APP_LOG_PATH此外,您可以通过定义环境变量(即通过.env文件)将其更改为您想要的任何内容

APP_LOG_PATH=logs/abc.log
于 2015-07-03T02:36:24.777 回答
5

这里有一个可用的公共方法,在这里可以看到configureMonologUsing引用,您可以使用它来覆盖默认行为,而无需扩展应用程序。

以下是在bootstrap/app.php 中使用它的方法:

$app->configureMonologUsing(function(Monolog\Logger $monolog) {

    $handler = (new \Monolog\Handler\StreamHandler(storage_path('/logs/xyz.log')))
        ->setFormatter(new \Monolog\Formatter\LineFormatter(null, null, true, true));

    return $monolog->pushHandler($handler);
});

奖励:还结帐独白的RotatingFileHandler

于 2016-04-19T02:10:18.193 回答
2

在 lumen 5.6 及更高版本中,lumen 检查文件 config\logging.php。如果存在,lumen 将按照此文件中的指示配置日志记录。

要获取基本模板,请将文件从 vendor\laravel\lumen-framework\config\logging.php 复制到 config\logging.php。

然后编辑 config\logging.php

    ...

    'daily' => [
        'driver' => 'daily',
        'path' => storage_path('logs/xyz.log'),
        'level' => 'debug',
        'days' => 14,
    ],
    ...
于 2020-05-01T11:07:31.423 回答