{
    "generated_at": "2026-05-05T08:16:39-06:00",
    "selected_file": "app-2026-05-05.log",
    "line_count": 200,
    "line_count_total": 200,
    "level_resume": {
        "PORTAL_CUSTOM_DOMAIN_MATCHED": 128,
        "PHP_ERROR": 29,
        "NEWS_PUBLICATION_NOT_FOUND": 9,
        "AD_IMAGE_NOT_FOUND": 26,
        "NEWS_INVALID_ID": 2,
        "RATE_LIMIT_HIT": 5,
        "RAW": 1
    },
    "entries": [
        {
            "ts": "2026-05-05T14:16:10+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:10+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:10+00:00",
            "level": "PHP_ERROR",
            "message": "Undefined variable $PortalPlan",
            "context": {
                "severity": 2,
                "file": "/home/redaction/public_html/portal/blue_bottom.php",
                "line": 46
            }
        },
        {
            "ts": "2026-05-05T14:16:10+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "codice21.com.mx",
                "sub": "codice21"
            }
        },
        {
            "ts": "2026-05-05T14:16:10+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:10+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:10+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "informativonacional.com.mx",
                "sub": "informativonacional"
            }
        },
        {
            "ts": "2026-05-05T14:16:10+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "informativonacional.com.mx",
                "sub": "informativonacional"
            }
        },
        {
            "ts": "2026-05-05T14:16:11+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "informativonacional.com.mx",
                "sub": "informativonacional"
            }
        },
        {
            "ts": "2026-05-05T14:16:11+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:11+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:11+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:11+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:11+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:11+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "codice21.com.mx",
                "sub": "codice21"
            }
        },
        {
            "ts": "2026-05-05T14:16:11+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:11+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:11+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:11+00:00",
            "level": "NEWS_PUBLICATION_NOT_FOUND",
            "message": "Noticia no asociada al portal solicitado.",
            "context": {
                "article_id": 1757756,
                "portal_id": 1
            }
        },
        {
            "ts": "2026-05-05T14:16:11+00:00",
            "level": "PHP_ERROR",
            "message": "Undefined variable $PortalPlan",
            "context": {
                "severity": 2,
                "file": "/home/redaction/public_html/portal/blue_bottom.php",
                "line": 46
            }
        },
        {
            "ts": "2026-05-05T14:16:11+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "codice21.com.mx",
                "sub": "codice21"
            }
        },
        {
            "ts": "2026-05-05T14:16:11+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:12+00:00",
            "level": "AD_IMAGE_NOT_FOUND",
            "message": "Banner omitido por imagen inexistente: portal=1669, ubicacion=81, archivo=liderespoliticos46502_2025_0430141611.gif",
            "context": []
        },
        {
            "ts": "2026-05-05T14:16:12+00:00",
            "level": "AD_IMAGE_NOT_FOUND",
            "message": "Banner omitido por imagen inexistente: portal=1669, ubicacion=82, archivo=liderespoliticos46502_2025_0430150209.gif",
            "context": []
        },
        {
            "ts": "2026-05-05T14:16:12+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:12+00:00",
            "level": "PHP_ERROR",
            "message": "Undefined variable $PortalPlan",
            "context": {
                "severity": 2,
                "file": "/home/redaction/public_html/portal/blue_bottom.php",
                "line": 46
            }
        },
        {
            "ts": "2026-05-05T14:16:13+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:13+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "liderespoliticos.com.mx",
                "sub": "liderespoliticos"
            }
        },
        {
            "ts": "2026-05-05T14:16:13+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "informativonacional.com.mx",
                "sub": "informativonacional"
            }
        },
        {
            "ts": "2026-05-05T14:16:13+00:00",
            "level": "AD_IMAGE_NOT_FOUND",
            "message": "Banner omitido por imagen inexistente: portal=1669, ubicacion=81, archivo=liderespoliticos46502_2025_0430141611.gif",
            "context": []
        },
        {
            "ts": "2026-05-05T14:16:13+00:00",
            "level": "AD_IMAGE_NOT_FOUND",
            "message": "Banner omitido por imagen inexistente: portal=1669, ubicacion=82, archivo=liderespoliticos46502_2025_0430150209.gif",
            "context": []
        },
        {
            "ts": "2026-05-05T14:16:13+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:14+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:14+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:15+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:15+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:15+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:16+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "informativonacional.com.mx",
                "sub": "informativonacional"
            }
        },
        {
            "ts": "2026-05-05T14:16:16+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "informativonacional.com.mx",
                "sub": "informativonacional"
            }
        },
        {
            "ts": "2026-05-05T14:16:16+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:16+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:16+00:00",
            "level": "PHP_ERROR",
            "message": "Undefined variable $PortalPlan",
            "context": {
                "severity": 2,
                "file": "/home/redaction/public_html/portal/blue_bottom.php",
                "line": 46
            }
        },
        {
            "ts": "2026-05-05T14:16:17+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:17+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:17+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:18+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "codice21.com.mx",
                "sub": "codice21"
            }
        },
        {
            "ts": "2026-05-05T14:16:18+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:18+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:19+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:19+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:20+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:20+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:20+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "informativonacional.com.mx",
                "sub": "informativonacional"
            }
        },
        {
            "ts": "2026-05-05T14:16:20+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:21+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:21+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "liderespoliticos.com.mx",
                "sub": "liderespoliticos"
            }
        },
        {
            "ts": "2026-05-05T14:16:22+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:22+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "liderespoliticos.com.mx",
                "sub": "liderespoliticos"
            }
        },
        {
            "ts": "2026-05-05T14:16:22+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:22+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:22+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "liderespoliticos.com.mx",
                "sub": "liderespoliticos"
            }
        },
        {
            "ts": "2026-05-05T14:16:22+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "codice21.com.mx",
                "sub": "codice21"
            }
        },
        {
            "ts": "2026-05-05T14:16:23+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "liderespoliticos.com.mx",
                "sub": "liderespoliticos"
            }
        },
        {
            "ts": "2026-05-05T14:16:23+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:23+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "liderespoliticos.com.mx",
                "sub": "liderespoliticos"
            }
        },
        {
            "ts": "2026-05-05T14:16:23+00:00",
            "level": "NEWS_PUBLICATION_NOT_FOUND",
            "message": "Noticia no asociada al portal solicitado.",
            "context": {
                "article_id": 1757081,
                "portal_id": 1625
            }
        },
        {
            "ts": "2026-05-05T14:16:23+00:00",
            "level": "NEWS_PUBLICATION_NOT_FOUND",
            "message": "Noticia no asociada al portal solicitado.",
            "context": {
                "article_id": 1769388,
                "portal_id": 2703
            }
        },
        {
            "ts": "2026-05-05T14:16:23+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "liderespoliticos.com.mx",
                "sub": "liderespoliticos"
            }
        },
        {
            "ts": "2026-05-05T14:16:23+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "liderespoliticos.com.mx",
                "sub": "liderespoliticos"
            }
        },
        {
            "ts": "2026-05-05T14:16:23+00:00",
            "level": "AD_IMAGE_NOT_FOUND",
            "message": "Banner omitido por imagen inexistente: portal=1669, ubicacion=81, archivo=liderespoliticos46502_2025_0430141611.gif",
            "context": []
        },
        {
            "ts": "2026-05-05T14:16:23+00:00",
            "level": "AD_IMAGE_NOT_FOUND",
            "message": "Banner omitido por imagen inexistente: portal=1669, ubicacion=82, archivo=liderespoliticos46502_2025_0430150209.gif",
            "context": []
        },
        {
            "ts": "2026-05-05T14:16:23+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:23+00:00",
            "level": "AD_IMAGE_NOT_FOUND",
            "message": "Banner omitido por imagen inexistente: portal=1669, ubicacion=81, archivo=liderespoliticos46502_2025_0430141611.gif",
            "context": []
        },
        {
            "ts": "2026-05-05T14:16:23+00:00",
            "level": "AD_IMAGE_NOT_FOUND",
            "message": "Banner omitido por imagen inexistente: portal=1669, ubicacion=82, archivo=liderespoliticos46502_2025_0430150209.gif",
            "context": []
        },
        {
            "ts": "2026-05-05T14:16:23+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:23+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "liderespoliticos.com.mx",
                "sub": "liderespoliticos"
            }
        },
        {
            "ts": "2026-05-05T14:16:23+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "liderespoliticos.com.mx",
                "sub": "liderespoliticos"
            }
        },
        {
            "ts": "2026-05-05T14:16:24+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "liderespoliticos.com.mx",
                "sub": "liderespoliticos"
            }
        },
        {
            "ts": "2026-05-05T14:16:24+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:24+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "liderespoliticos.com.mx",
                "sub": "liderespoliticos"
            }
        },
        {
            "ts": "2026-05-05T14:16:24+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "liderespoliticos.com.mx",
                "sub": "liderespoliticos"
            }
        },
        {
            "ts": "2026-05-05T14:16:24+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:24+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "liderespoliticos.com.mx",
                "sub": "liderespoliticos"
            }
        },
        {
            "ts": "2026-05-05T14:16:24+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:24+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "liderespoliticos.com.mx",
                "sub": "liderespoliticos"
            }
        },
        {
            "ts": "2026-05-05T14:16:25+00:00",
            "level": "AD_IMAGE_NOT_FOUND",
            "message": "Banner omitido por imagen inexistente: portal=1625, ubicacion=81, archivo=emmanuelameth46298_2025_0407222826.png",
            "context": []
        },
        {
            "ts": "2026-05-05T14:16:25+00:00",
            "level": "AD_IMAGE_NOT_FOUND",
            "message": "Banner omitido por imagen inexistente: portal=1625, ubicacion=82, archivo=emmanuelameth46298_2025_0407182810.png",
            "context": []
        },
        {
            "ts": "2026-05-05T14:16:25+00:00",
            "level": "PHP_ERROR",
            "message": "Undefined variable $PortalPlan",
            "context": {
                "severity": 2,
                "file": "/home/redaction/public_html/portal/blue_bottom.php",
                "line": 46
            }
        },
        {
            "ts": "2026-05-05T14:16:25+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "liderespoliticos.com.mx",
                "sub": "liderespoliticos"
            }
        },
        {
            "ts": "2026-05-05T14:16:25+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:25+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "liderespoliticos.com.mx",
                "sub": "liderespoliticos"
            }
        },
        {
            "ts": "2026-05-05T14:16:25+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "informativonacional.com.mx",
                "sub": "informativonacional"
            }
        },
        {
            "ts": "2026-05-05T14:16:25+00:00",
            "level": "NEWS_PUBLICATION_NOT_FOUND",
            "message": "Noticia no asociada al portal solicitado.",
            "context": {
                "article_id": 1766591,
                "portal_id": 1059
            }
        },
        {
            "ts": "2026-05-05T14:16:25+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "liderespoliticos.com.mx",
                "sub": "liderespoliticos"
            }
        },
        {
            "ts": "2026-05-05T14:16:25+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "liderespoliticos.com.mx",
                "sub": "liderespoliticos"
            }
        },
        {
            "ts": "2026-05-05T14:16:25+00:00",
            "level": "AD_IMAGE_NOT_FOUND",
            "message": "Banner omitido por imagen inexistente: portal=1669, ubicacion=81, archivo=liderespoliticos46502_2025_0430141611.gif",
            "context": []
        },
        {
            "ts": "2026-05-05T14:16:25+00:00",
            "level": "AD_IMAGE_NOT_FOUND",
            "message": "Banner omitido por imagen inexistente: portal=1669, ubicacion=82, archivo=liderespoliticos46502_2025_0430150209.gif",
            "context": []
        },
        {
            "ts": "2026-05-05T14:16:25+00:00",
            "level": "PHP_ERROR",
            "message": "Undefined variable $PortalPlan",
            "context": {
                "severity": 2,
                "file": "/home/redaction/public_html/portal/blue_bottom.php",
                "line": 46
            }
        },
        {
            "ts": "2026-05-05T14:16:25+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:25+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "liderespoliticos.com.mx",
                "sub": "liderespoliticos"
            }
        },
        {
            "ts": "2026-05-05T14:16:25+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "liderespoliticos.com.mx",
                "sub": "liderespoliticos"
            }
        },
        {
            "ts": "2026-05-05T14:16:26+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "liderespoliticos.com.mx",
                "sub": "liderespoliticos"
            }
        },
        {
            "ts": "2026-05-05T14:16:26+00:00",
            "level": "PHP_ERROR",
            "message": "Undefined variable $portal_correo",
            "context": {
                "severity": 2,
                "file": "/home/redaction/public_html/portal/config.php",
                "line": 82
            }
        },
        {
            "ts": "2026-05-05T14:16:26+00:00",
            "level": "PHP_ERROR",
            "message": "Undefined variable $portal_telefono",
            "context": {
                "severity": 2,
                "file": "/home/redaction/public_html/portal/config.php",
                "line": 83
            }
        },
        {
            "ts": "2026-05-05T14:16:26+00:00",
            "level": "PHP_ERROR",
            "message": "Undefined variable $portal_contacto",
            "context": {
                "severity": 2,
                "file": "/home/redaction/public_html/portal/config.php",
                "line": 84
            }
        },
        {
            "ts": "2026-05-05T14:16:26+00:00",
            "level": "PHP_ERROR",
            "message": "Undefined variable $portal_suscripciones",
            "context": {
                "severity": 2,
                "file": "/home/redaction/public_html/portal/config.php",
                "line": 86
            }
        },
        {
            "ts": "2026-05-05T14:16:26+00:00",
            "level": "PHP_ERROR",
            "message": "Undefined variable $portal_instagram",
            "context": {
                "severity": 2,
                "file": "/home/redaction/public_html/portal/config.php",
                "line": 90
            }
        },
        {
            "ts": "2026-05-05T14:16:26+00:00",
            "level": "PHP_ERROR",
            "message": "Undefined variable $portal_whatsapp",
            "context": {
                "severity": 2,
                "file": "/home/redaction/public_html/portal/config.php",
                "line": 91
            }
        },
        {
            "ts": "2026-05-05T14:16:26+00:00",
            "level": "PHP_ERROR",
            "message": "Undefined variable $portal_adsense",
            "context": {
                "severity": 2,
                "file": "/home/redaction/public_html/portal/config.php",
                "line": 95
            }
        },
        {
            "ts": "2026-05-05T14:16:26+00:00",
            "level": "PHP_ERROR",
            "message": "Undefined variable $portal_adsense_id",
            "context": {
                "severity": 2,
                "file": "/home/redaction/public_html/portal/config.php",
                "line": 96
            }
        },
        {
            "ts": "2026-05-05T14:16:26+00:00",
            "level": "PHP_ERROR",
            "message": "Undefined variable $portal_adsense_editor_id",
            "context": {
                "severity": 2,
                "file": "/home/redaction/public_html/portal/config.php",
                "line": 97
            }
        },
        {
            "ts": "2026-05-05T14:16:26+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:26+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "emmanuelameth.com.mx",
                "sub": "emmanuelameth"
            }
        },
        {
            "ts": "2026-05-05T14:16:26+00:00",
            "level": "NEWS_INVALID_ID",
            "message": "Parámetros inválidos para consulta de noticia.",
            "context": {
                "article_id": 0,
                "portal_id": 1625
            }
        },
        {
            "ts": "2026-05-05T14:16:26+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:26+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "liderespoliticos.com.mx",
                "sub": "liderespoliticos"
            }
        },
        {
            "ts": "2026-05-05T14:16:26+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "liderespoliticos.com.mx",
                "sub": "liderespoliticos"
            }
        },
        {
            "ts": "2026-05-05T14:16:26+00:00",
            "level": "AD_IMAGE_NOT_FOUND",
            "message": "Banner omitido por imagen inexistente: portal=1625, ubicacion=81, archivo=emmanuelameth46298_2025_0407222826.png",
            "context": []
        },
        {
            "ts": "2026-05-05T14:16:26+00:00",
            "level": "AD_IMAGE_NOT_FOUND",
            "message": "Banner omitido por imagen inexistente: portal=1625, ubicacion=82, archivo=emmanuelameth46298_2025_0407182810.png",
            "context": []
        },
        {
            "ts": "2026-05-05T14:16:26+00:00",
            "level": "PHP_ERROR",
            "message": "Undefined variable $PortalPlan",
            "context": {
                "severity": 2,
                "file": "/home/redaction/public_html/portal/blue_bottom.php",
                "line": 46
            }
        },
        {
            "ts": "2026-05-05T14:16:26+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:26+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "liderespoliticos.com.mx",
                "sub": "liderespoliticos"
            }
        },
        {
            "ts": "2026-05-05T14:16:26+00:00",
            "level": "NEWS_PUBLICATION_NOT_FOUND",
            "message": "Noticia no asociada al portal solicitado.",
            "context": {
                "article_id": 1752223,
                "portal_id": 1625
            }
        },
        {
            "ts": "2026-05-05T14:16:26+00:00",
            "level": "RATE_LIMIT_HIT",
            "message": "openai_user",
            "context": {
                "key": "soft404_title"
            }
        },
        {
            "ts": "2026-05-05T14:16:26+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "liderespoliticos.com.mx",
                "sub": "liderespoliticos"
            }
        },
        {
            "ts": "2026-05-05T14:16:27+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "liderespoliticos.com.mx",
                "sub": "liderespoliticos"
            }
        },
        {
            "ts": "2026-05-05T14:16:27+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:27+00:00",
            "level": "AD_IMAGE_NOT_FOUND",
            "message": "Banner omitido por imagen inexistente: portal=1625, ubicacion=81, archivo=emmanuelameth46298_2025_0407222826.png",
            "context": []
        },
        {
            "ts": "2026-05-05T14:16:27+00:00",
            "level": "AD_IMAGE_NOT_FOUND",
            "message": "Banner omitido por imagen inexistente: portal=1625, ubicacion=82, archivo=emmanuelameth46298_2025_0407182810.png",
            "context": []
        },
        {
            "ts": "2026-05-05T14:16:27+00:00",
            "level": "PHP_ERROR",
            "message": "Undefined variable $PortalPlan",
            "context": {
                "severity": 2,
                "file": "/home/redaction/public_html/portal/blue_bottom.php",
                "line": 46
            }
        },
        {
            "ts": "2026-05-05T14:16:27+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "liderespoliticos.com.mx",
                "sub": "liderespoliticos"
            }
        },
        {
            "ts": "2026-05-05T14:16:27+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:27+00:00",
            "level": "AD_IMAGE_NOT_FOUND",
            "message": "Banner omitido por imagen inexistente: portal=1669, ubicacion=81, archivo=liderespoliticos46502_2025_0430141611.gif",
            "context": []
        },
        {
            "ts": "2026-05-05T14:16:27+00:00",
            "level": "AD_IMAGE_NOT_FOUND",
            "message": "Banner omitido por imagen inexistente: portal=1669, ubicacion=82, archivo=liderespoliticos46502_2025_0430150209.gif",
            "context": []
        },
        {
            "ts": "2026-05-05T14:16:27+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "liderespoliticos.com.mx",
                "sub": "liderespoliticos"
            }
        },
        {
            "ts": "2026-05-05T14:16:27+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "liderespoliticos.com.mx",
                "sub": "liderespoliticos"
            }
        },
        {
            "ts": "2026-05-05T14:16:27+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:27+00:00",
            "level": "PHP_ERROR",
            "message": "Undefined variable $PortalPlan",
            "context": {
                "severity": 2,
                "file": "/home/redaction/public_html/portal/blue_bottom.php",
                "line": 46
            }
        },
        {
            "ts": "2026-05-05T14:16:28+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:28+00:00",
            "level": "NEWS_PUBLICATION_NOT_FOUND",
            "message": "Noticia no asociada al portal solicitado.",
            "context": {
                "article_id": 1760445,
                "portal_id": 1
            }
        },
        {
            "ts": "2026-05-05T14:16:28+00:00",
            "level": "RATE_LIMIT_HIT",
            "message": "openai_user",
            "context": {
                "key": "soft404_title"
            }
        },
        {
            "ts": "",
            "level": "RAW",
            "message": "{\"ts\":\"2026-05-05T14:16:28+00:00\",\"level\":\"PORTAL_CUSTOM_DOMAIN_MATCHED\",\"message\":\"Dominio propio mapeado a subdominio.\",\"contextLIMIT_HIT\",\"message\":\"openai_user\",\"context\":{\"key\":\"soft404_title\"},\"message_hash\":\"c9b18db2386d054c\",\"request_method\":\"GET\",\"request_uri\":\"/recupera_mandataria_mexiquense_unidad_deportiva_en_san_felipe_del_progreso-e3Tc2e3DQ0NQ.html\",\"remote_addr\":\"2a03:2880:f806:3e::\",\"user_agent\":\"meta-externalagent/1.1 (+https://developers.facebook.com/docs/sharing/webmasters/crawler)\"}",
            "context": []
        },
        {
            "ts": "2026-05-05T14:16:28+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:28+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:29+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:29+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:30+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "informativonacional.com.mx",
                "sub": "informativonacional"
            }
        },
        {
            "ts": "2026-05-05T14:16:30+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:30+00:00",
            "level": "AD_IMAGE_NOT_FOUND",
            "message": "Banner omitido por imagen inexistente: portal=1625, ubicacion=81, archivo=emmanuelameth46298_2025_0407222826.png",
            "context": []
        },
        {
            "ts": "2026-05-05T14:16:30+00:00",
            "level": "AD_IMAGE_NOT_FOUND",
            "message": "Banner omitido por imagen inexistente: portal=1625, ubicacion=82, archivo=emmanuelameth46298_2025_0407182810.png",
            "context": []
        },
        {
            "ts": "2026-05-05T14:16:30+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:30+00:00",
            "level": "PHP_ERROR",
            "message": "Undefined variable $PortalPlan",
            "context": {
                "severity": 2,
                "file": "/home/redaction/public_html/portal/blue_bottom.php",
                "line": 46
            }
        },
        {
            "ts": "2026-05-05T14:16:31+00:00",
            "level": "PHP_ERROR",
            "message": "Undefined variable $portal_name",
            "context": {
                "severity": 2,
                "file": "/home/redaction/public_html/portal/login.php",
                "line": 109
            }
        },
        {
            "ts": "2026-05-05T14:16:31+00:00",
            "level": "PHP_ERROR",
            "message": "Undefined variable $portal_id",
            "context": {
                "severity": 2,
                "file": "/home/redaction/public_html/portal/login.php",
                "line": 110
            }
        },
        {
            "ts": "2026-05-05T14:16:31+00:00",
            "level": "PHP_ERROR",
            "message": "Undefined variable $portal_google_sv",
            "context": {
                "severity": 2,
                "file": "/home/redaction/public_html/portal/login.php",
                "line": 114
            }
        },
        {
            "ts": "2026-05-05T14:16:31+00:00",
            "level": "PHP_ERROR",
            "message": "Undefined array key \"PR_ADSENSE_EDITOR_ID\"",
            "context": {
                "severity": 2,
                "file": "/home/redaction/public_html/portal/ad.php",
                "line": 204
            }
        },
        {
            "ts": "2026-05-05T14:16:31+00:00",
            "level": "PHP_ERROR",
            "message": "Undefined array key \"PR_SET_ALLOWADS\"",
            "context": {
                "severity": 2,
                "file": "/home/redaction/public_html/portal/ad.php",
                "line": 217
            }
        },
        {
            "ts": "2026-05-05T14:16:31+00:00",
            "level": "PHP_ERROR",
            "message": "Undefined variable $portal_name",
            "context": {
                "severity": 2,
                "file": "/home/redaction/public_html/portal/blue_bottom.php",
                "line": 35
            }
        },
        {
            "ts": "2026-05-05T14:16:31+00:00",
            "level": "PHP_ERROR",
            "message": "Undefined variable $portal_name",
            "context": {
                "severity": 2,
                "file": "/home/redaction/public_html/portal/blue_bottom.php",
                "line": 39
            }
        },
        {
            "ts": "2026-05-05T14:16:31+00:00",
            "level": "PHP_ERROR",
            "message": "Undefined variable $PortalPlan",
            "context": {
                "severity": 2,
                "file": "/home/redaction/public_html/portal/blue_bottom.php",
                "line": 46
            }
        },
        {
            "ts": "2026-05-05T14:16:31+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:31+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:32+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:33+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:33+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "liderespoliticos.com.mx",
                "sub": "liderespoliticos"
            }
        },
        {
            "ts": "2026-05-05T14:16:33+00:00",
            "level": "NEWS_PUBLICATION_NOT_FOUND",
            "message": "Noticia no asociada al portal solicitado.",
            "context": {
                "article_id": 1760827,
                "portal_id": 1669
            }
        },
        {
            "ts": "2026-05-05T14:16:33+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:33+00:00",
            "level": "NEWS_INVALID_ID",
            "message": "Parámetros inválidos para consulta de noticia.",
            "context": {
                "article_id": 0,
                "portal_id": 1625
            }
        },
        {
            "ts": "2026-05-05T14:16:33+00:00",
            "level": "RATE_LIMIT_HIT",
            "message": "openai_user",
            "context": {
                "key": "soft404_title"
            }
        },
        {
            "ts": "2026-05-05T14:16:34+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:34+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:35+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:35+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:35+00:00",
            "level": "AD_IMAGE_NOT_FOUND",
            "message": "Banner omitido por imagen inexistente: portal=1669, ubicacion=81, archivo=liderespoliticos46502_2025_0430141611.gif",
            "context": []
        },
        {
            "ts": "2026-05-05T14:16:35+00:00",
            "level": "AD_IMAGE_NOT_FOUND",
            "message": "Banner omitido por imagen inexistente: portal=1669, ubicacion=82, archivo=liderespoliticos46502_2025_0430150209.gif",
            "context": []
        },
        {
            "ts": "2026-05-05T14:16:35+00:00",
            "level": "PHP_ERROR",
            "message": "Undefined variable $PortalPlan",
            "context": {
                "severity": 2,
                "file": "/home/redaction/public_html/portal/blue_bottom.php",
                "line": 46
            }
        },
        {
            "ts": "2026-05-05T14:16:36+00:00",
            "level": "AD_IMAGE_NOT_FOUND",
            "message": "Banner omitido por imagen inexistente: portal=1669, ubicacion=81, archivo=liderespoliticos46502_2025_0430141611.gif",
            "context": []
        },
        {
            "ts": "2026-05-05T14:16:36+00:00",
            "level": "AD_IMAGE_NOT_FOUND",
            "message": "Banner omitido por imagen inexistente: portal=1669, ubicacion=82, archivo=liderespoliticos46502_2025_0430150209.gif",
            "context": []
        },
        {
            "ts": "2026-05-05T14:16:36+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:36+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "emmanuelameth.com.mx",
                "sub": "emmanuelameth"
            }
        },
        {
            "ts": "2026-05-05T14:16:36+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "portalmexiquense.com.mx",
                "sub": "portalmexiquense"
            }
        },
        {
            "ts": "2026-05-05T14:16:36+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:36+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:36+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "emmanuelameth.com.mx",
                "sub": "emmanuelameth"
            }
        },
        {
            "ts": "2026-05-05T14:16:36+00:00",
            "level": "NEWS_PUBLICATION_NOT_FOUND",
            "message": "Noticia no asociada al portal solicitado.",
            "context": {
                "article_id": 1747299,
                "portal_id": 1059
            }
        },
        {
            "ts": "2026-05-05T14:16:36+00:00",
            "level": "RATE_LIMIT_HIT",
            "message": "openai_user",
            "context": {
                "key": "soft404_title"
            }
        },
        {
            "ts": "2026-05-05T14:16:36+00:00",
            "level": "AD_IMAGE_NOT_FOUND",
            "message": "Banner omitido por imagen inexistente: portal=1625, ubicacion=81, archivo=emmanuelameth46298_2025_0407222826.png",
            "context": []
        },
        {
            "ts": "2026-05-05T14:16:36+00:00",
            "level": "AD_IMAGE_NOT_FOUND",
            "message": "Banner omitido por imagen inexistente: portal=1625, ubicacion=82, archivo=emmanuelameth46298_2025_0407182810.png",
            "context": []
        },
        {
            "ts": "2026-05-05T14:16:36+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "edomexhoy.com",
                "sub": "edomexhoy"
            }
        },
        {
            "ts": "2026-05-05T14:16:37+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:37+00:00",
            "level": "PHP_ERROR",
            "message": "Undefined variable $PortalPlan",
            "context": {
                "severity": 2,
                "file": "/home/redaction/public_html/portal/blue_bottom.php",
                "line": 46
            }
        },
        {
            "ts": "2026-05-05T14:16:37+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:37+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "codice21.com.mx",
                "sub": "codice21"
            }
        },
        {
            "ts": "2026-05-05T14:16:38+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:38+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:38+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "edomexhoy.com",
                "sub": "edomexhoy"
            }
        },
        {
            "ts": "2026-05-05T14:16:38+00:00",
            "level": "NEWS_PUBLICATION_NOT_FOUND",
            "message": "Noticia no asociada al portal solicitado.",
            "context": {
                "article_id": 1752315,
                "portal_id": 1059
            }
        },
        {
            "ts": "2026-05-05T14:16:38+00:00",
            "level": "RATE_LIMIT_HIT",
            "message": "openai_user",
            "context": {
                "key": "soft404_title"
            }
        },
        {
            "ts": "2026-05-05T14:16:39+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T14:16:39+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "portalmexiquense.com.mx",
                "sub": "portalmexiquense"
            }
        }
    ],
    "level_filter": "ALL",
    "query_filter": "",
    "error_groups": [
        {
            "fingerprint": "dominio propio mapeado a subdominio.",
            "count": 128,
            "level_counts": {
                "PORTAL_CUSTOM_DOMAIN_MATCHED": 128
            },
            "last_ts": "2026-05-05T14:16:39+00:00",
            "sample": "Dominio propio mapeado a subdominio."
        },
        {
            "fingerprint": "undefined variable $portalplan",
            "count": 13,
            "level_counts": {
                "PHP_ERROR": 13
            },
            "last_ts": "2026-05-05T14:16:37+00:00",
            "sample": "Undefined variable $PortalPlan"
        },
        {
            "fingerprint": "noticia no asociada al portal solicitado.",
            "count": 9,
            "level_counts": {
                "NEWS_PUBLICATION_NOT_FOUND": 9
            },
            "last_ts": "2026-05-05T14:16:38+00:00",
            "sample": "Noticia no asociada al portal solicitado."
        },
        {
            "fingerprint": "banner omitido por imagen inexistente: portal=#, ubicacion=#, archivo=liderespoliticos46502_2025_0430141611.gif",
            "count": 8,
            "level_counts": {
                "AD_IMAGE_NOT_FOUND": 8
            },
            "last_ts": "2026-05-05T14:16:36+00:00",
            "sample": "Banner omitido por imagen inexistente: portal=1669, ubicacion=81, archivo=liderespoliticos46502_2025_0430141611.gif"
        },
        {
            "fingerprint": "banner omitido por imagen inexistente: portal=#, ubicacion=#, archivo=liderespoliticos46502_2025_0430150209.gif",
            "count": 8,
            "level_counts": {
                "AD_IMAGE_NOT_FOUND": 8
            },
            "last_ts": "2026-05-05T14:16:36+00:00",
            "sample": "Banner omitido por imagen inexistente: portal=1669, ubicacion=82, archivo=liderespoliticos46502_2025_0430150209.gif"
        },
        {
            "fingerprint": "openai_user",
            "count": 5,
            "level_counts": {
                "RATE_LIMIT_HIT": 5
            },
            "last_ts": "2026-05-05T14:16:38+00:00",
            "sample": "openai_user"
        },
        {
            "fingerprint": "banner omitido por imagen inexistente: portal=#, ubicacion=#, archivo=emmanuelameth46298_2025_0407222826.png",
            "count": 5,
            "level_counts": {
                "AD_IMAGE_NOT_FOUND": 5
            },
            "last_ts": "2026-05-05T14:16:36+00:00",
            "sample": "Banner omitido por imagen inexistente: portal=1625, ubicacion=81, archivo=emmanuelameth46298_2025_0407222826.png"
        },
        {
            "fingerprint": "banner omitido por imagen inexistente: portal=#, ubicacion=#, archivo=emmanuelameth46298_2025_0407182810.png",
            "count": 5,
            "level_counts": {
                "AD_IMAGE_NOT_FOUND": 5
            },
            "last_ts": "2026-05-05T14:16:36+00:00",
            "sample": "Banner omitido por imagen inexistente: portal=1625, ubicacion=82, archivo=emmanuelameth46298_2025_0407182810.png"
        },
        {
            "fingerprint": "undefined variable $portal_name",
            "count": 3,
            "level_counts": {
                "PHP_ERROR": 3
            },
            "last_ts": "2026-05-05T14:16:31+00:00",
            "sample": "Undefined variable $portal_name"
        },
        {
            "fingerprint": "parámetros inválidos para consulta de noticia.",
            "count": 2,
            "level_counts": {
                "NEWS_INVALID_ID": 2
            },
            "last_ts": "2026-05-05T14:16:33+00:00",
            "sample": "Parámetros inválidos para consulta de noticia."
        },
        {
            "fingerprint": "undefined variable $portal_id",
            "count": 1,
            "level_counts": {
                "PHP_ERROR": 1
            },
            "last_ts": "2026-05-05T14:16:31+00:00",
            "sample": "Undefined variable $portal_id"
        },
        {
            "fingerprint": "undefined variable $portal_google_sv",
            "count": 1,
            "level_counts": {
                "PHP_ERROR": 1
            },
            "last_ts": "2026-05-05T14:16:31+00:00",
            "sample": "Undefined variable $portal_google_sv"
        },
        {
            "fingerprint": "undefined array key \"pr_adsense_editor_id\"",
            "count": 1,
            "level_counts": {
                "PHP_ERROR": 1
            },
            "last_ts": "2026-05-05T14:16:31+00:00",
            "sample": "Undefined array key \"PR_ADSENSE_EDITOR_ID\""
        },
        {
            "fingerprint": "undefined array key \"pr_set_allowads\"",
            "count": 1,
            "level_counts": {
                "PHP_ERROR": 1
            },
            "last_ts": "2026-05-05T14:16:31+00:00",
            "sample": "Undefined array key \"PR_SET_ALLOWADS\""
        },
        {
            "fingerprint": "undefined variable $portal_correo",
            "count": 1,
            "level_counts": {
                "PHP_ERROR": 1
            },
            "last_ts": "2026-05-05T14:16:26+00:00",
            "sample": "Undefined variable $portal_correo"
        },
        {
            "fingerprint": "undefined variable $portal_telefono",
            "count": 1,
            "level_counts": {
                "PHP_ERROR": 1
            },
            "last_ts": "2026-05-05T14:16:26+00:00",
            "sample": "Undefined variable $portal_telefono"
        },
        {
            "fingerprint": "undefined variable $portal_contacto",
            "count": 1,
            "level_counts": {
                "PHP_ERROR": 1
            },
            "last_ts": "2026-05-05T14:16:26+00:00",
            "sample": "Undefined variable $portal_contacto"
        },
        {
            "fingerprint": "undefined variable $portal_suscripciones",
            "count": 1,
            "level_counts": {
                "PHP_ERROR": 1
            },
            "last_ts": "2026-05-05T14:16:26+00:00",
            "sample": "Undefined variable $portal_suscripciones"
        },
        {
            "fingerprint": "undefined variable $portal_instagram",
            "count": 1,
            "level_counts": {
                "PHP_ERROR": 1
            },
            "last_ts": "2026-05-05T14:16:26+00:00",
            "sample": "Undefined variable $portal_instagram"
        },
        {
            "fingerprint": "undefined variable $portal_whatsapp",
            "count": 1,
            "level_counts": {
                "PHP_ERROR": 1
            },
            "last_ts": "2026-05-05T14:16:26+00:00",
            "sample": "Undefined variable $portal_whatsapp"
        },
        {
            "fingerprint": "undefined variable $portal_adsense",
            "count": 1,
            "level_counts": {
                "PHP_ERROR": 1
            },
            "last_ts": "2026-05-05T14:16:26+00:00",
            "sample": "Undefined variable $portal_adsense"
        },
        {
            "fingerprint": "undefined variable $portal_adsense_id",
            "count": 1,
            "level_counts": {
                "PHP_ERROR": 1
            },
            "last_ts": "2026-05-05T14:16:26+00:00",
            "sample": "Undefined variable $portal_adsense_id"
        },
        {
            "fingerprint": "undefined variable $portal_adsense_editor_id",
            "count": 1,
            "level_counts": {
                "PHP_ERROR": 1
            },
            "last_ts": "2026-05-05T14:16:26+00:00",
            "sample": "Undefined variable $portal_adsense_editor_id"
        },
        {
            "fingerprint": "{\"ts\":\"#-#-05t14:#:#+#:#\",\"level\":\"portal_custom_domain_matched\",\"message\":\"dominio propio mapeado a subdominio.\",\"contextlimit_hit\",\"message\":\"openai_user\",\"context\":{\"key\":\"soft404_title\"},\"message_hash\":\"c9b18db2386d0",
            "count": 1,
            "level_counts": {
                "RAW": 1
            },
            "last_ts": "",
            "sample": "{\"ts\":\"2026-05-05T14:16:28+00:00\",\"level\":\"PORTAL_CUSTOM_DOMAIN_MATCHED\",\"message\":\"Dominio propio mapeado a subdominio.\",\"contextLIMIT_HIT\",\"message\":\"openai_user\",\"context\":{\"key\":\"soft404_title\"},\"message_hash\":\"c9b18db2386d054c\",\"request_method\":\"GET\",\"request_uri\":\"/recupera_mandataria_mexiquense_unidad_deportiva_en_san_felipe_del_progreso-e3Tc2e3DQ0NQ.html\",\"remote_addr\":\"2a03:2880:f806:3e::\",\"user_agent\":\"meta-externalagent/1.1 (+https://developers.facebook.com/docs/sharing/webmasters/crawler)\"}"
        }
    ],
    "portal_coverage": {
        "checked_at": "2026-05-05T00:54:29-06:00",
        "scope": "/portal/* + /portales/* + subdominios",
        "status": "N/A",
        "total": 0,
        "total_available": 0,
        "up": 0,
        "warn": 0,
        "down": 0,
        "include_portales_route": true,
        "items": [],
        "detail": "No hay portales disponibles para analizar."
    },
    "portal_findings": [],
    "portal_limit": 24,
    "portal_filter": "",
    "portal_scan_source": "report",
    "group_limit": 25
}