通过ServiceProvider创建新的laravel日志记录通道
我正在创建一个Laravel包。是否可以通过ServiceProvider类创建新的日志记录通道 我已经在我的通过ServiceProvider创建新的laravel日志记录通道,laravel,logging,Laravel,Logging,我正在创建一个Laravel包。是否可以通过ServiceProvider类创建新的日志记录通道 我已经在我的config/logging.php中手动创建了一个新的日志通道,但是我更希望该包将来能自动为我创建这个通道 更新: 我有一个Laravel包,其中将使用它自己的日志堆栈和文件。下面是我现在在config/logging.php中的代码: 'deployment' => [ 'driver' => 'single', 'path' => storage_
config/logging.php
中手动创建了一个新的日志通道,但是我更希望该包将来能自动为我创建这个通道
更新:
我有一个Laravel包,其中将使用它自己的日志堆栈和文件。下面是我现在在config/logging.php
中的代码:
'deployment' => [
'driver' => 'single',
'path' => storage_path('logs/deployment.log'),
'level' => 'debug',
],
谢谢。您可以使用app('log')
从服务容器获取LogManager单例,并使用公共函数堆栈(array$channels,$channel=null)
方法传入要添加的通道数组
app('log')->stack([
'channels' => [
'test' => [
'driver' => 'daily',
'path' => storage_path('logs/test.log'),
'level' => 'debug',
'days' => 30,
]
]
]);
你可以用
$this->app->make('config')->set('logging.channels.deployment', [
'driver' => 'single',
'path' => storage_path('logs/deployment.log'),
'level' => 'debug',
]);
在您的
ServiceProvider::boot
方法中当您说记录通道时,是指单独的日志文件吗?或者你的意思是像info
和debug
。在config/logging.php
中,您可以定义新的通道,在其中输出到不同的文件(如果这是所需的操作)。这并不能回答问题。我已经在config/logging.php
文件中添加了日志配置。我希望通过编程实现这一点。更新了答案,以解决在运行时添加其他记录器配置的问题。我不知道为什么要在运行时添加配置。。。或者在创建日志时如何知道使用哪个通道。如果你分享你尝试做的事情背后的原因,你的问题可能会有不同的解决方案。我已经更新了我的问题。你的答案似乎有效,但我还没有测试过。谢谢你的回答。好的。实际上,听起来您只是希望用户能够安装自己的预定义配置。这是通过出版来实现的。这里有更多信息(使用配置示例):@zyglobe您引用的文档没有回答这个问题,因为有一个自定义包发布它自己的文件不会将新条目添加到已经存在的配置文件中,即config/logging.php