我正在构建一个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
有人可以帮我解决这个问题吗?
谢谢。
答案 0 :(得分:1)
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');
}