"Laravel Lumen - 日志通道"

7

我需要为两种不同的情况记录到两个不同的文件中。类似这样:

Log::channel('case1')->info('msg1'),

Log::channel('case2')->info('msg2'),

在Lumen中如何实现呢?

我了解到Laravel通过通道(channels)的方式来处理这个问题,然后像这样调用通道:Log::channel('custom-channel')->info('msg'),但是在Lumen中要如何实现呢?我找不到config/logging.php文件(我只能在laravel/lumen-framework仓库的src目录之外看到它,但它并不在laravel/lumen中)

如果您有任何想法,请提供一些代码示例。

谢谢 :)


2
请参阅 https://github.com/laravel/lumen-framework/issues/736。如果您将 laravel/lumen-framework 版本复制到应用程序的 config/logging.php 中,它将覆盖默认设置。 - ceejayoz
1
谢谢,我还有一些问题,但会尝试跟踪这个问题。实际上,我发现直接使用Monolog并将其包装到自己的Log类中更容易。这有点傻,因为这应该比使用Lumen更容易理解,但怎么办呢。这里的基本示例是我要做两次才能得到想要的结果 https://seldaek.github.io/monolog/ - Fractalf
1个回答

1
在这种情况下,对我有用的是:

$log1 = app('Psr\Log\LoggerInterface')->channel('case1');
$log2 = app('Psr\Log\LoggerInterface')->channel('case2');

...

$log1->info('msg1');
...
$log2->info('msg2');
...

当然,你需要创建一个类似于Laravel中的config/logging.php的配置文件。在那里,你定义了“case1”和“case2”渠道。框架会自动识别这些。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接