Този Tail Worker събира логове от другите ви Cloudflare Workers приложения.
Tail Worker-ът автоматично:
- Събира всички логове (console.log, console.error и т.н.)
- Записва изключения и грешки
- Логва diagnostic channel events
- Форматира всички данни в структуриран JSON формат
- Добавя timestamp и metadata към всеки запис
Worker-ът обработва следните типове данни:
- logs: Стандартни логове от console.log/error/warn
- exceptions: JavaScript грешки и изключения
- diagnostics: Diagnostic channel events
- event_info: Информация за HTTP заявки и други събития
# Разработка
npm run dev
# Деплойване
npm run deploy
# Проверка на типове
npx tsc --noEmit# Разработка
run.bat dev
# Деплойване
run.bat deploy
# Проверка на TypeScript
run.bat check
# Помощ
run.bat# Разработка
cmd /c "cd /d d:\Dev\OTHER\hows-logger && npm run dev"
# Деплойване
cmd /c "cd /d d:\Dev\OTHER\hows-logger && npm run deploy"За да свържете други Workers към този tail worker, добавете в тяхната wrangler.toml конфигурация:
[observability]
enabled = true
# За конкретен tail worker
[tail_consumers]
services = ["hows-logger"]Или използвайте Cloudflare Dashboard:
- Отидете в Workers & Pages
- Изберете worker-а, който искате да наблюдавате
- Settings > Observability > Real-time Logs
- Добавете
hows-loggerкато tail consumer
Всеки лог запис съдържа:
{
"type": "log|exception|diagnostic|event_info",
"timestamp": "2025-09-30T15:30:00.000Z",
"scriptName": "my-worker",
"level": "log|error|warn|info",
"message": "съдържанието на лога",
"outcome": "ok|exception|canceled",
"channel": "diagnostic-channel-name" // само за diagnostic events
}В момента логовете се изписват в конзолата. За продукционна употреба можете да:
- Analytics Engine: Добавете логовете към Analytics Engine за анализ
- Durable Objects: Съхранявайте логове за по-дълъг период
- KV: Временно съхранение за кеширане
- External API: Изпращайте към външна система за логове
// В tail функцията
const analyticsEngine = env.ANALYTICS_ENGINE;
await analyticsEngine.writeDataPoint({
blobs: [logEntry.scriptName, logEntry.level],
doubles: [Date.now()],
indexes: [logEntry.message]
});- Worker-ът не изпраща данни към външни системи
- Всички логове остават в Cloudflare екосистемата
- Конфигурацията позволява контрол върху logpush
{ "name": "hows-logger", "main": "src/index.ts", "compatibility_date": "2025-09-27", "observability": { "enabled": true }, "logpush": false }