【发布时间】:2015-10-21 17:22:01
【问题描述】:
我使用 Laravel 5.1,并试图拦截默认记录器配置 (Monolog) 并将日志保存到包含用户名的不同路径。
当前日志保存到 storage/logs/laravel.log。
想要的路径如下
经过身份验证的用户: storage/logs/[username]/[date]_[api_path].log
其他用户日志可以保存在 storage/logs/guest/[date]_[api_path].log 下
服务提供者方法
有一个 LogServiceProvider,我可以在其中修改每个请求并根据需要设置路径。
public function boot(Request $request)
{
$log = new Logger('View Logs');
$user = \Auth::User()->getName(); // ERROR - uninitialized
$path = 'storage/logs/'.$user.'/mylogfile.log'; // doesn't matter API path
$log ->pushHandler(new StreamHandler($path, Logger::INFO));
...
}
这种方法的问题是 Auth::user() 似乎未初始化。
为什么会发生这种情况,我该如何解决?
【问题讨论】:
标签: laravel laravel-5 laravel-5.1