← Cloudflare Workers / workers / observability / logs
Workers Logpush
Cloudflare Logpush podporuje možnost odeslat Workers Trace Event Logs na podporovaný cíl. Workers Trace Events Logpush obsahuje metadata o požadavcích a odpovědích, nestrukturované console.log() zprávy a veškeré nezachycené výjimky. Tento produkt je dostupný v plánu Workers Paid. Informace o cenách najdete v Ceny.
Ověřte svůj přístup k Logpush
Chcete-li nakonfigurovat úlohu Logpush, ověřte, že vaše role v účtu Cloudflare umožňuje používat Logpush. Chcete-li zkontrolovat svou roli:
-
V dashboardu Cloudflare přejděte na Členové stránce.
Přejděte na Členové ↗ -
Zkontrolujte oprávnění svého účtu. Role s přístupem ke konfiguraci Logpush se liší od oprávnění pro Workers. Plný přístup k Logpush mají role Super Administrator, Administrator a Log Share.
Alternativně vytvořte nový API token s rozsahem na úrovni účtu a oprávněními Logs Edit.
Vytvoření úlohy Logpush
Pomocí dashboardu Cloudflare
Chcete-li vytvořit úlohu Logpush v Cloudflare dashboardu:
-
V dashboardu Cloudflare přejděte na Logpush stránce.
Přejděte na Logpush ↗ -
Vyberte Vytvoření úlohy Logpush.
-
Vyberte cíl a v případě potřeby ho nakonfigurujte.
-
Vyberte Trasovací události Workers jako datová sada > Next.
-
V případě potřeby upravte datová pole. Jinak vyberte Next.
-
Podle pokynů v dashboardu ověřte vlastnictví cíle svých dat a dokončete vytvoření úlohy.
Pomocí nástroje cURL
Následující příklad odesílá protokoly Workers do R2. Další možnosti konfigurace najdete v Povolit cíle a Konfigurace API v dokumentaci k Logs.
curl "https://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/logpush/jobs" \
--header 'X-Auth-Key: <API_KEY>' \
--header 'X-Auth-Email: <EMAIL>' \
--header 'Content-Type: application/json' \
--data '{
"name": "workers-logpush",
"output_options": {
"field_names": ["Event", "EventTimestampMs", "Outcome", "Exceptions", "Logs", "ScriptName"],
},
"destination_conf": "r2://<BUCKET_PATH>/{DATE}?account-id=<ACCOUNT_ID>&access-key-id=<R2_ACCESS_KEY_ID>&secret-access-key=<R2_SECRET_ACCESS_KEY>",
"dataset": "workers_trace_events",
"enabled": true
}' | jq .V Logpush můžete nakonfigurovat filtry a míra vzorkování abyste měli větší kontrolu nad objemem dat odesílaných do vašeho nastaveného cíle. Pokud chcete například dostávat protokoly jen pro požadavky, které nevedly k výjimce, přidejte následující filter vlastnost JSON níže output_options:
"filter":"{\"where\": {\"key\":\"Outcome\",\"operator\":\"!eq\",\"value\":\"exception\"}}"
Povolte logování pro svůj Worker
Lokální vývoj
Logování pro Worker povolíte přidáním nové vlastnosti logpush = true, do souboru Wrangler. Lze jej přidat buď do konfigurace na nejvyšší úrovni, nebo pod prostředí. Všechny nové Workery s touto vlastností úloha Logpush automaticky zachytí.
{
"$schema": "./node_modules/wrangler/config-schema.json",
// Top-level configuration
"name": "my-worker",
"main": "src/index.js",
// Set this to today's date
"compatibility_date": "2026-08-28",
"workers_dev": false,
"logpush": true,
"route": {
"pattern": "example.org/*",
"zone_name": "example.org"
}
}"$schema" = "./node_modules/wrangler/config-schema.json"
name = "my-worker"
main = "src/index.js"
# Set this to today's date
compatibility_date = "2026-08-28"
workers_dev = false
logpush = true
[route]
pattern = "example.org/*"
zone_name = "example.org"Nakonfigurujte prostřednictvím API pro multipart nahrávání skriptu:
curl --request PUT \
"https://api.cloudflare.com/client/v4/accounts/{account_id}/workers/scripts/{script_name}" \
--header "Authorization: Bearer <API_TOKEN>" \
--form 'metadata={"main_module": "my-worker.js", "logpush": true}' \
--form '"my-worker.js"=@./my-worker.js;type=application/javascript+module'Dashboard
Chcete-li zapnout protokolování Logpush přes dashboard:
-
V dashboardu Cloudflare přejděte na Workers & Pages stránce.
Přejděte na Workers & Pages ↗ -
Vyberte svůj Worker.
-
Přejděte na Nastavení > Observabilita.
-
Pro Logpush, vyberte Povolit (toto je k dispozici pouze v případě, že jste již vytvořili jste úlohu logpush).
Limity
logs a exceptions pole mají společný limit 16,384 znaků, po jehož překročení se pole začnou zkracovat. Znaky se počítají v pořadí všech exception.names, exception.messages, a poté log.messages.
Jakmile je dosaženo limitu znaků, všechna pole se zkrátí pomocí "<<<Logpush: *field* truncated>>>" pro jednu zprávu, než dojde k zahození protokolů nebo výjimek.
Příklad
Pro ilustraci předpokládejme, že událost Logpush vypadá jako JSON níže a limit je 50 znaků (namísto skutečného limitu 16,384). Algoritmus bude postupovat takto:
- Spočítejte znaky v
exception.names:"SampleError"a"AuthError"jako 20 znaků.
- Spočítejte znaky v
exception.message:"something went wrong"se počítá jako 20 znaků, takže zbývá 10 znaků.- Prvních 10 znaků
"unable to process request authentication from client"se vezme a započítá ještě předtím, než se zkrátí na"unable to <<<Logpush: exception messages truncated>>>".
- Spočítejte znaky v
log.message:- Zkracování jsme již zahájili, takže
"Hello "bude nahrazen"<<<Logpush: messages truncated>>>"a"World!"bude zahozen.
- Zkracování jsme již zahájili, takže
Ukázkový vstup
{
"Exceptions": [
{
"Name": "SampleError",
"Message": "something went wrong",
"TimestampMs": 0
},
{
"Name": "AuthError",
"Message": "unable to process request authentication from client",
"TimestampMs": 1
}
],
"Logs": [
{
"Level": "log",
"Message": ["Hello "],
"TimestampMs": 0
},
{
"Level": "log",
"Message": ["World!"],
"TimestampMs": 0
}
]
}Ukázkový výstup
{
"Exceptions": [
{
"name": "SampleError",
"message": "something went wrong",
"TimestampMs": 0
},
{
"name": "AuthError",
"message": "unable to <<<Logpush: exception messages truncated>>>",
"TimestampMs": 1
}
],
"Logs": [
{
"Level": "log",
"Message": ["<<<Logpush: messages truncated>>>"],
"TimestampMs": 0
}
]
}