【问题标题】:Laravel 5.5 - How to change the Laravel log file name by remote IP?Laravel 5.5 - 如何通过远程 IP 更改 Laravel 日志文件名?
【发布时间】: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


    【解决方案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');
    
    }
    

    【讨论】:

    • @vlauciani 当然。让我知道进展如何:)
    猜你喜欢
    • 2017-11-10
    • 1970-01-01
    • 2020-04-13
    • 1970-01-01
    • 2018-05-28
    • 1970-01-01
    • 2021-11-30
    • 2015-05-14
    • 2018-04-07
    相关资源
    最近更新 更多