Laravel Lumen 更改日志文件名
Laravel Lumen change log file name
Lumen 日志写入 /storage/logs
,默认情况下命名为 lumen.log
。如何将文件名更改为 xyz.log
?
如评论中所述,日志文件的位置和名称是硬编码的。
现在,如果您出于某些令人信服的原因想要更改它,您可以随时扩展 Laravel\Lumen\Application
class 并覆盖 getMonologHandler()
方法。
在 app
文件夹中创建一个看起来像
的新文件 Application.php
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
file
APP_LOG_PATH=logs/abc.log
有一个 public 方法可用 configureMonologUsing
看到 here and referenced 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);
});
奖励:同时查看独白的RotatingFileHandler
。
在 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,
],
...
Lumen 日志写入 /storage/logs
,默认情况下命名为 lumen.log
。如何将文件名更改为 xyz.log
?
如评论中所述,日志文件的位置和名称是硬编码的。
现在,如果您出于某些令人信服的原因想要更改它,您可以随时扩展 Laravel\Lumen\Application
class 并覆盖 getMonologHandler()
方法。
在 app
文件夹中创建一个看起来像
Application.php
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
file
APP_LOG_PATH=logs/abc.log
有一个 public 方法可用 configureMonologUsing
看到 here and referenced 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);
});
奖励:同时查看独白的RotatingFileHandler
。
在 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,
],
...