INTEGRITY Dokumentace

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:

  1. V dashboardu Cloudflare přejděte na Členové stránce.

    Přejděte na Členové ↗
  2. 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:

  1. V dashboardu Cloudflare přejděte na Logpush stránce.

    Přejděte na Logpush ↗
  2. Vyberte Vytvoření úlohy Logpush.

  3. Vyberte cíl a v případě potřeby ho nakonfigurujte.

  4. Vyberte Trasovací události Workers jako datová sada > Next.

  5. V případě potřeby upravte datová pole. Jinak vyberte Next.

  6. 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:

  1. V dashboardu Cloudflare přejděte na Workers & Pages stránce.

    Přejděte na Workers & Pages ↗
  2. Vyberte svůj Worker.

  3. Přejděte na Nastavení > Observabilita.

  4. 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:

  1. Spočítejte znaky v exception.names:
    1. "SampleError" a "AuthError" jako 20 znaků.
  2. Spočítejte znaky v exception.message:
    1. "something went wrong" se počítá jako 20 znaků, takže zbývá 10 znaků.
    2. 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>>>".
  3. Spočítejte znaky v log.message:
    1. Zkracování jsme již zahájili, takže "Hello " bude nahrazen "<<<Logpush: messages truncated>>>" a "World!" bude zahozen.

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
		}
	]
}