private static function logLineHasText($keyword, $line, $searchMeta = true)
    {
        if ($keyword === null) {
            return true;
        }
        if (array_key_exists('message', $line) && strpos(strtolower($line['message']), strtolower($keyword)) !== false) {
            return true;
        }
        if (array_key_exists('date', $line) && strpos(strtolower($line['date']), strtolower($keyword)) !== false) {
            return true;
        }
        if ($searchMeta) {
            if (array_key_exists('context', $line)) {
                $context = $line['context'];
                if (array_key_exists(strtolower($keyword), $context)) {
                    return true;
                }
                foreach ($context as $content) {
                    if (strpos(strtolower($content), strtolower($keyword)) !== false) {
                        return true;
                    }
                }
            }
            if (array_key_exists('extra', $line)) {
                $extra = $line['extra'];
                if (array_key_exists($keyword, $extra)) {
                    return true;
                }
                foreach ($extra as $content) {
                    if (strpos(strtolower($content), strtolower($keyword)) !== false) {
                        return true;
                    }
                }
            }
        }

        return false;
    }