<?php

$_REQUEST = [
    "username" => "admin",
    "password" => "pass",
    "credit_card" => "000000"
];

$_SESSION = [
    "id" => 1
];

function create_log($filename, $log)
{
    // Copia as superglobais para variáveis locais:
    $request = $_REQUEST;
    $session = $_SESSION;

    // Define quais são as informações sensíveis:
    $filter = ["password", "credit_card"];

    // Filtra as informações sensíveis:
    $request = array_filter($request, function ($key) use ($filter) {
        return !in_array($key, $filter);
    }, ARRAY_FILTER_USE_KEY);

    $session = array_filter($session, function ($key) use ($filter) {
        return !in_array($key, $filter);
    }, ARRAY_FILTER_USE_KEY);

    // Gera a mensagem de log:
    // file_put_contents( 
    //     $filename.'.log', '[START]'.
    //     json_encode($request).PHP_EOL.
    //     json_encode($session).PHP_EOL.
    //     "Log ".$log.PHP_EOL.'[END]'.PHP_EOL
    // , FILE_APPEND );
    
    var_dump($request);
    var_dump($session);
}

create_log("foo", "Mensagem de log");

// Variáveis globais não foram alteradas:
var_dump($_REQUEST);
var_dump($_SESSION);