Laravel Lumen更改日志文件名

时间:2015-06-28 12:12:17

标签: lumen

流明日志写入/storage/logs,默认情况下名称为lumen.log。如何更改文件名以说出xyz.log

3 个答案:

答案 0 :(得分:11)

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

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

Application.php文件夹中创建一个类似于

的新文件app
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(
<{1>}文件中的

现在,您的日志文件名为bootstrap\app.php。您可以通过定义环境变量xyz.log,即通过APP_LOG_PATH文件

将其更改为您想要的任何内容
.env

答案 1 :(得分:5)

有一个公共方法可用configureMonologUsing看到here并引用here,您可以使用它来覆盖默认行为而不扩展应用程序。

以下是如何在 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);
});

奖金:同时结帐monolog的RotatingFileHandler

答案 2 :(得分:1)

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

要获取基本模板,请将文件从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,
    ],
    ...