繁体   English   中英

Laravel 5.5-如何通过远程IP更改Laravel日志文件名?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM