{
    "generated_at": "2026-05-05T11:34:14-06:00",
    "selected_file": "app-2026-05-05.log",
    "line_count": 200,
    "line_count_total": 200,
    "level_resume": {
        "NEWS_INVALID_ID": 2,
        "PORTAL_CUSTOM_DOMAIN_MATCHED": 128,
        "PHP_ERROR": 17,
        "AD_IMAGE_NOT_FOUND": 31,
        "NEWS_PUBLICATION_NOT_FOUND": 11,
        "RATE_LIMIT_HIT": 10,
        "INFO": 1
    },
    "entries": [
        {
            "ts": "2026-05-05T17:33:46+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-05T17:33:46+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:33:46+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "liderespoliticos.com.mx",
                "sub": "liderespoliticos"
            }
        },
        {
            "ts": "2026-05-05T17:33:46+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-05T17:33:46+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-05T17:33:46+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-05T17:33:46+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-05T17:33:46+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:33:47+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:33:47+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "portalmexiquense.com.mx",
                "sub": "portalmexiquense"
            }
        },
        {
            "ts": "2026-05-05T17:33:47+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:33:48+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "liderespoliticos.com.mx",
                "sub": "liderespoliticos"
            }
        },
        {
            "ts": "2026-05-05T17:33:48+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:33:48+00:00",
            "level": "NEWS_PUBLICATION_NOT_FOUND",
            "message": "Noticia no asociada al portal solicitado.",
            "context": {
                "article_id": 1415330,
                "portal_id": 1
            }
        },
        {
            "ts": "2026-05-05T17:33:48+00:00",
            "level": "RATE_LIMIT_HIT",
            "message": "openai_user",
            "context": {
                "key": "soft404_title"
            }
        },
        {
            "ts": "2026-05-05T17:33:48+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:33:48+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:33:48+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:33:48+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-05T17:33:48+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-05T17:33:48+00:00",
            "level": "NEWS_PUBLICATION_NOT_FOUND",
            "message": "Noticia no asociada al portal solicitado.",
            "context": {
                "article_id": 1744790,
                "portal_id": 1247
            }
        },
        {
            "ts": "2026-05-05T17:33:48+00:00",
            "level": "RATE_LIMIT_HIT",
            "message": "openai_user",
            "context": {
                "key": "soft404_title"
            }
        },
        {
            "ts": "2026-05-05T; Bytespider; spider-feedback@bytedance.com)",
            "level": "INFO",
            "message": "{\"ts\":\"2026-05-05T; Bytespider; spider-feedback@bytedance.com)\"}",
            "context": {
                "ts": "2026-05-05T; Bytespider; spider-feedback@bytedance.com)"
            }
        },
        {
            "ts": "2026-05-05T17:33:48+00:00",
            "level": "RATE_LIMIT_HIT",
            "message": "openai_user",
            "context": {
                "key": "soft404_title"
            }
        },
        {
            "ts": "2026-05-05T17:33:48+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:33:49+00:00",
            "level": "PHP_ERROR",
            "message": "html_entity_decode(): Passing null to parameter #1 ($string) of type string is deprecated",
            "context": {
                "severity": 8192,
                "file": "/home/redaction/public_html/portal/blue_bottom.php",
                "line": 47
            }
        },
        {
            "ts": "2026-05-05T17:33:49+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "informativonacional.com.mx",
                "sub": "informativonacional"
            }
        },
        {
            "ts": "2026-05-05T17:33:49+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:33:49+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "emmanuelameth.com.mx",
                "sub": "emmanuelameth"
            }
        },
        {
            "ts": "2026-05-05T17:33:49+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-05T17:33:49+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-05T17:33:49+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:33:50+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "liderespoliticos.com.mx",
                "sub": "liderespoliticos"
            }
        },
        {
            "ts": "2026-05-05T17:33:50+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-05T17:33:50+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-05T17:33:50+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:33:50+00:00",
            "level": "NEWS_PUBLICATION_NOT_FOUND",
            "message": "Noticia no asociada al portal solicitado.",
            "context": {
                "article_id": 1744409,
                "portal_id": 2703
            }
        },
        {
            "ts": "2026-05-05T17:33:50+00:00",
            "level": "RATE_LIMIT_HIT",
            "message": "openai_user",
            "context": {
                "key": "soft404_title"
            }
        },
        {
            "ts": "2026-05-05T17:33:50+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:33:50+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-05T17:33:50+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "informativonacional.com.mx",
                "sub": "informativonacional"
            }
        },
        {
            "ts": "2026-05-05T17:33:50+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:33:51+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:33:51+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "codice21.com.mx",
                "sub": "codice21"
            }
        },
        {
            "ts": "2026-05-05T17:33:51+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-05T17:33:52+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "informativonacional.com.mx",
                "sub": "informativonacional"
            }
        },
        {
            "ts": "2026-05-05T17:33:52+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:33:52+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-05T17:33:52+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "informativonacional.com.mx",
                "sub": "informativonacional"
            }
        },
        {
            "ts": "2026-05-05T17:33:52+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "informativonacional.com.mx",
                "sub": "informativonacional"
            }
        },
        {
            "ts": "2026-05-05T17:33:52+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "informativonacional.com.mx",
                "sub": "informativonacional"
            }
        },
        {
            "ts": "2026-05-05T17:33:52+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "informativonacional.com.mx",
                "sub": "informativonacional"
            }
        },
        {
            "ts": "2026-05-05T17:33:52+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:33:52+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "codice21.com.mx",
                "sub": "codice21"
            }
        },
        {
            "ts": "2026-05-05T17:33:53+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:33:53+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "codice21.com.mx",
                "sub": "codice21"
            }
        },
        {
            "ts": "2026-05-05T17:33:53+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "codice21.com.mx",
                "sub": "codice21"
            }
        },
        {
            "ts": "2026-05-05T17:33:53+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "informativonacional.com.mx",
                "sub": "informativonacional"
            }
        },
        {
            "ts": "2026-05-05T17:33:53+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "informativonacional.com.mx",
                "sub": "informativonacional"
            }
        },
        {
            "ts": "2026-05-05T17:33:53+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:33:53+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "liderespoliticos.com.mx",
                "sub": "liderespoliticos"
            }
        },
        {
            "ts": "2026-05-05T17:33:53+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-05T17:33:53+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-05T17:33:54+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:33:54+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "edomexhoy.com",
                "sub": "edomexhoy"
            }
        },
        {
            "ts": "2026-05-05T17:33:54+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "informativonacional.com.mx",
                "sub": "informativonacional"
            }
        },
        {
            "ts": "2026-05-05T17:33:54+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:33:55+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:33:55+00:00",
            "level": "NEWS_PUBLICATION_NOT_FOUND",
            "message": "Noticia no asociada al portal solicitado.",
            "context": {
                "article_id": 1744415,
                "portal_id": 2703
            }
        },
        {
            "ts": "2026-05-05T17:33:55+00:00",
            "level": "RATE_LIMIT_HIT",
            "message": "openai_user",
            "context": {
                "key": "soft404_title"
            }
        },
        {
            "ts": "2026-05-05T17:33:55+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "informativonacional.com.mx",
                "sub": "informativonacional"
            }
        },
        {
            "ts": "2026-05-05T17:33:55+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:33:55+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "liderespoliticos.com.mx",
                "sub": "liderespoliticos"
            }
        },
        {
            "ts": "2026-05-05T17:33:55+00:00",
            "level": "NEWS_PUBLICATION_NOT_FOUND",
            "message": "Noticia no asociada al portal solicitado.",
            "context": {
                "article_id": 1764059,
                "portal_id": 1669
            }
        },
        {
            "ts": "2026-05-05T17:33:55+00:00",
            "level": "RATE_LIMIT_HIT",
            "message": "openai_user",
            "context": {
                "key": "soft404_title"
            }
        },
        {
            "ts": "2026-05-05T17:33:56+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:33:56+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "informativonacional.com.mx",
                "sub": "informativonacional"
            }
        },
        {
            "ts": "2026-05-05T17:33:56+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-05T17:33:56+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-05T17:33:56+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-05T17:33:56+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-05T17:33:56+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:33:57+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:33:57+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:33:57+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "informativonacional.com.mx",
                "sub": "informativonacional"
            }
        },
        {
            "ts": "2026-05-05T17:33:57+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "informativonacional.com.mx",
                "sub": "informativonacional"
            }
        },
        {
            "ts": "2026-05-05T17:33:57+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:33:58+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "informativonacional.com.mx",
                "sub": "informativonacional"
            }
        },
        {
            "ts": "2026-05-05T17:33:58+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:33:58+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:33:58+00:00",
            "level": "NEWS_PUBLICATION_NOT_FOUND",
            "message": "Noticia no asociada al portal solicitado.",
            "context": {
                "article_id": 1744419,
                "portal_id": 2703
            }
        },
        {
            "ts": "2026-05-05T17:33:58+00:00",
            "level": "RATE_LIMIT_HIT",
            "message": "openai_user",
            "context": {
                "key": "soft404_title"
            }
        },
        {
            "ts": "2026-05-05T17:33:58+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:33:58+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-05T17:33:58+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-05T17:33:59+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:33:59+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:33:59+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "liderespoliticos.com.mx",
                "sub": "liderespoliticos"
            }
        },
        {
            "ts": "2026-05-05T17:33:59+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-05T17:33:59+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:34:00+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:34:00+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:34:01+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "edomexhoy.com",
                "sub": "edomexhoy"
            }
        },
        {
            "ts": "2026-05-05T17:34:01+00:00",
            "level": "PHP_ERROR",
            "message": "Trying to access array offset on value of type null",
            "context": {
                "severity": 2,
                "file": "/home/redaction/public_html/portal/noticias_categoria.php",
                "line": 55
            }
        },
        {
            "ts": "2026-05-05T17:34:01+00:00",
            "level": "PHP_ERROR",
            "message": "ucwords(): Passing null to parameter #1 ($string) of type string is deprecated",
            "context": {
                "severity": 8192,
                "file": "/home/redaction/public_html/portal/noticias_categoria.php",
                "line": 55
            }
        },
        {
            "ts": "2026-05-05T17:34:01+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:34:01+00:00",
            "level": "NEWS_PUBLICATION_NOT_FOUND",
            "message": "Noticia no asociada al portal solicitado.",
            "context": {
                "article_id": 1744420,
                "portal_id": 2703
            }
        },
        {
            "ts": "2026-05-05T17:34:02+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:34:02+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "edomexhoy.com",
                "sub": "edomexhoy"
            }
        },
        {
            "ts": "2026-05-05T17:34:02+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:34:02+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:34:03+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:34:03+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "codice21.com.mx",
                "sub": "codice21"
            }
        },
        {
            "ts": "2026-05-05T17:34:03+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:34:03+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:34:03+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "emmanuelameth.com.mx",
                "sub": "emmanuelameth"
            }
        },
        {
            "ts": "2026-05-05T17:34:03+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-05T17:34:03+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-05T17:34:04+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:34:04+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "emmanuelameth.com.mx",
                "sub": "emmanuelameth"
            }
        },
        {
            "ts": "2026-05-05T17:34:04+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "emmanuelameth.com.mx",
                "sub": "emmanuelameth"
            }
        },
        {
            "ts": "2026-05-05T17:34:04+00:00",
            "level": "AD_IMAGE_NOT_FOUND",
            "message": "Banner omitido por imagen inexistente: portal=1625, ubicacion=5, archivo=emmanuelameth46298_2025_0504125332.png",
            "context": []
        },
        {
            "ts": "2026-05-05T17:34:04+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "emmanuelameth.com.mx",
                "sub": "emmanuelameth"
            }
        },
        {
            "ts": "2026-05-05T17:34:04+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "emmanuelameth.com.mx",
                "sub": "emmanuelameth"
            }
        },
        {
            "ts": "2026-05-05T17:34:04+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:34:04+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "emmanuelameth.com.mx",
                "sub": "emmanuelameth"
            }
        },
        {
            "ts": "2026-05-05T17:34:04+00:00",
            "level": "NEWS_PUBLICATION_NOT_FOUND",
            "message": "Noticia no asociada al portal solicitado.",
            "context": {
                "article_id": 1768688,
                "portal_id": 2703
            }
        },
        {
            "ts": "2026-05-05T17:34:04+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:34:04+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-05T17:34:04+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-05T17:34:04+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-05T17:34:04+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "emmanuelameth.com.mx",
                "sub": "emmanuelameth"
            }
        },
        {
            "ts": "2026-05-05T17:34:05+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "codice21.com.mx",
                "sub": "codice21"
            }
        },
        {
            "ts": "2026-05-05T17:34:05+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:34:05+00:00",
            "level": "NEWS_PUBLICATION_NOT_FOUND",
            "message": "Noticia no asociada al portal solicitado.",
            "context": {
                "article_id": 1744416,
                "portal_id": 2703
            }
        },
        {
            "ts": "2026-05-05T17:34:05+00:00",
            "level": "RATE_LIMIT_HIT",
            "message": "openai_user",
            "context": {
                "key": "soft404_title"
            }
        },
        {
            "ts": "2026-05-05T17:34:05+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "codice21.com.mx",
                "sub": "codice21"
            }
        },
        {
            "ts": "2026-05-05T17:34:05+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:34:05+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-05T17:34:05+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-05T17:34:05+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "informativonacional.com.mx",
                "sub": "informativonacional"
            }
        },
        {
            "ts": "2026-05-05T17:34:06+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:34:06+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:34:06+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "emmanuelameth.com.mx",
                "sub": "emmanuelameth"
            }
        },
        {
            "ts": "2026-05-05T17:34:06+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-05T17:34:06+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-05T17:34:06+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-05T17:34:06+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-05T17:34:06+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:34:06+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "emmanuelameth.com.mx",
                "sub": "emmanuelameth"
            }
        },
        {
            "ts": "2026-05-05T17:34:06+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:34:06+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-05T17:34:06+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-05T17:34:06+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-05T17:34:07+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "emmanuelameth.com.mx",
                "sub": "emmanuelameth"
            }
        },
        {
            "ts": "2026-05-05T17:34:07+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:34:07+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "informativonacional.com.mx",
                "sub": "informativonacional"
            }
        },
        {
            "ts": "2026-05-05T17:34:07+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:34:07+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "informativonacional.com.mx",
                "sub": "informativonacional"
            }
        },
        {
            "ts": "2026-05-05T17:34:07+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-05T17:34:07+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:34:07+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "liderespoliticos.com.mx",
                "sub": "liderespoliticos"
            }
        },
        {
            "ts": "2026-05-05T17:34:08+00:00",
            "level": "NEWS_PUBLICATION_NOT_FOUND",
            "message": "Noticia no asociada al portal solicitado.",
            "context": {
                "article_id": 1744405,
                "portal_id": 2703
            }
        },
        {
            "ts": "2026-05-05T17:34:08+00:00",
            "level": "RATE_LIMIT_HIT",
            "message": "openai_user",
            "context": {
                "key": "soft404_title"
            }
        },
        {
            "ts": "2026-05-05T17:34:08+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-05T17:34:08+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-05T17:34:08+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:34:08+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:34:08+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:34:08+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:34:09+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:34:09+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-05T17:34:09+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:34:09+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:34:09+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:34:10+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:34:10+00:00",
            "level": "NEWS_PUBLICATION_NOT_FOUND",
            "message": "Noticia no asociada al portal solicitado.",
            "context": {
                "article_id": 1744408,
                "portal_id": 2703
            }
        },
        {
            "ts": "2026-05-05T17:34:10+00:00",
            "level": "RATE_LIMIT_HIT",
            "message": "openai_user",
            "context": {
                "key": "soft404_title"
            }
        },
        {
            "ts": "2026-05-05T17:34:10+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:34:11+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "emmanuelameth.com.mx",
                "sub": "emmanuelameth"
            }
        },
        {
            "ts": "2026-05-05T17:34:11+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "emmanuelameth.com.mx",
                "sub": "emmanuelameth"
            }
        },
        {
            "ts": "2026-05-05T17:34:11+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:34: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-05T17:34:11+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:34:12+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "liderespoliticos.com.mx",
                "sub": "liderespoliticos"
            }
        },
        {
            "ts": "2026-05-05T17:34: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-05T17:34: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-05T17:34:12+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "emmanuelameth.com.mx",
                "sub": "emmanuelameth"
            }
        },
        {
            "ts": "2026-05-05T17:34:12+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "emmanuelameth.com.mx",
                "sub": "emmanuelameth"
            }
        },
        {
            "ts": "2026-05-05T17:34:12+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:34:12+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:34:13+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:34:13+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:34:13+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "emmanuelameth.com.mx",
                "sub": "emmanuelameth"
            }
        },
        {
            "ts": "2026-05-05T17:34:13+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-05T17:34:13+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-05T17:34:14+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "todotexcoco.com",
                "sub": "todotexcoco"
            }
        },
        {
            "ts": "2026-05-05T17:34:14+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "emmanuelameth.com.mx",
                "sub": "emmanuelameth"
            }
        },
        {
            "ts": "2026-05-05T17:34:14+00:00",
            "level": "PORTAL_CUSTOM_DOMAIN_MATCHED",
            "message": "Dominio propio mapeado a subdominio.",
            "context": {
                "host": "emmanuelameth.com.mx",
                "sub": "emmanuelameth"
            }
        },
        {
            "ts": "2026-05-05T17:34:14+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-05T17:34:14+00:00",
            "sample": "Dominio propio mapeado a subdominio."
        },
        {
            "fingerprint": "undefined variable $portalplan",
            "count": 14,
            "level_counts": {
                "PHP_ERROR": 14
            },
            "last_ts": "2026-05-05T17:34:11+00:00",
            "sample": "Undefined variable $PortalPlan"
        },
        {
            "fingerprint": "noticia no asociada al portal solicitado.",
            "count": 11,
            "level_counts": {
                "NEWS_PUBLICATION_NOT_FOUND": 11
            },
            "last_ts": "2026-05-05T17:34:10+00:00",
            "sample": "Noticia no asociada al portal solicitado."
        },
        {
            "fingerprint": "openai_user",
            "count": 10,
            "level_counts": {
                "RATE_LIMIT_HIT": 10
            },
            "last_ts": "2026-05-05T17:34:10+00:00",
            "sample": "openai_user"
        },
        {
            "fingerprint": "banner omitido por imagen inexistente: portal=#, ubicacion=#, archivo=emmanuelameth46298_2025_0407222826.png",
            "count": 8,
            "level_counts": {
                "AD_IMAGE_NOT_FOUND": 8
            },
            "last_ts": "2026-05-05T17:34:13+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": 8,
            "level_counts": {
                "AD_IMAGE_NOT_FOUND": 8
            },
            "last_ts": "2026-05-05T17:34:13+00:00",
            "sample": "Banner omitido por imagen inexistente: portal=1625, ubicacion=82, archivo=emmanuelameth46298_2025_0407182810.png"
        },
        {
            "fingerprint": "banner omitido por imagen inexistente: portal=#, ubicacion=#, archivo=liderespoliticos46502_2025_0430141611.gif",
            "count": 7,
            "level_counts": {
                "AD_IMAGE_NOT_FOUND": 7
            },
            "last_ts": "2026-05-05T17:34:12+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": 7,
            "level_counts": {
                "AD_IMAGE_NOT_FOUND": 7
            },
            "last_ts": "2026-05-05T17:34:12+00:00",
            "sample": "Banner omitido por imagen inexistente: portal=1669, ubicacion=82, archivo=liderespoliticos46502_2025_0430150209.gif"
        },
        {
            "fingerprint": "parámetros inválidos para consulta de noticia.",
            "count": 2,
            "level_counts": {
                "NEWS_INVALID_ID": 2
            },
            "last_ts": "2026-05-05T17:34:06+00:00",
            "sample": "Parámetros inválidos para consulta de noticia."
        },
        {
            "fingerprint": "banner omitido por imagen inexistente: portal=#, ubicacion=#, archivo=emmanuelameth46298_2025_0504125332.png",
            "count": 1,
            "level_counts": {
                "AD_IMAGE_NOT_FOUND": 1
            },
            "last_ts": "2026-05-05T17:34:04+00:00",
            "sample": "Banner omitido por imagen inexistente: portal=1625, ubicacion=5, archivo=emmanuelameth46298_2025_0504125332.png"
        },
        {
            "fingerprint": "trying to access array offset on value of type null",
            "count": 1,
            "level_counts": {
                "PHP_ERROR": 1
            },
            "last_ts": "2026-05-05T17:34:01+00:00",
            "sample": "Trying to access array offset on value of type null"
        },
        {
            "fingerprint": "ucwords(): passing null to parameter ## ($string) of type string is deprecated",
            "count": 1,
            "level_counts": {
                "PHP_ERROR": 1
            },
            "last_ts": "2026-05-05T17:34:01+00:00",
            "sample": "ucwords(): Passing null to parameter #1 ($string) of type string is deprecated"
        },
        {
            "fingerprint": "html_entity_decode(): passing null to parameter ## ($string) of type string is deprecated",
            "count": 1,
            "level_counts": {
                "PHP_ERROR": 1
            },
            "last_ts": "2026-05-05T17:33:49+00:00",
            "sample": "html_entity_decode(): Passing null to parameter #1 ($string) of type string is deprecated"
        },
        {
            "fingerprint": "{\"ts\":\"#-#-05t; bytespider; spider-feedback@bytedance.com)\"}",
            "count": 1,
            "level_counts": {
                "INFO": 1
            },
            "last_ts": "",
            "sample": "{\"ts\":\"2026-05-05T; Bytespider; spider-feedback@bytedance.com)\"}"
        }
    ],
    "portal_coverage": {
        "checked_at": "2026-05-05T10:12:37-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
}