【发布时间】:2018-04-22 13:54:47
【问题描述】:
我正在构建一个 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
有人可以帮我解决这个问题吗?
谢谢。
【问题讨论】:
标签: php logging laravel-5.5
我正在构建一个 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
有人可以帮我解决这个问题吗?
谢谢。
【问题讨论】:
标签: php logging laravel-5.5
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');
}
【讨论】: