[英]Laravel 5.5 - How to change the Laravel log file name by remote IP?
我正在构建一个API PHP后端,我想为连接到我的API的每个IP创建一个日志文件。
例如:
20171108__192.168.1.2__myapp.log
20171108__192.168.1.3__myapp.log
20171109__192.168.1.2__myapp.log
有人可以帮我解决这个问题吗?
谢谢。
Laravel的日志记录使用Seldaek / monolog ,因此您可以基于用户的ip为收到的每个请求创建一个Logger的新实例。
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
/**
* The function inside your controller.
*
* @param \Illuminate\Http\Request $request The request object.
*/
public function endpoint(Request $request){
// Create the logger
$logger = new Logger('my_logger');
// Generate the file name (20171109__192.168.1.2__myapp.log)
$filename = sprintf('%s/logs/%s__%s__myapp.log', storage_path(), date('Ymd'), $request->ip());
// Add the handler
$logger->pushHandler(new StreamHandler($filename, Logger::DEBUG));
// Use your logger
$logger->info('My logger is ready');
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.