Sources can produce log using
console statements, and can throw errors. These logs show up in the sources UI for each source, under LOGS.
Like events, logs can also be consumed programmatically:
- Connecting to the SSE stream directly
- Using the
pd logsCLI command
# What is SSE?
Server-sent Events (opens new window) (SSE) defines a spec for how servers can send events directly to clients that subscribe to those events, similar to WebSockets (opens new window) and related server-to-client push technologies.
Unlike WebSockets, SSE enables one-way communication from server to clients (WebSockets enable bidirectional communication between server and client, allowing you to pass messages back and forth). If you only need a client to subscribe to events from a server, and don't require bidirectional communication, SSE is simple way to make that happen.
# Connecting to the SSE stream directly
Just like for events, logs are published to a source-specific SSE stream.
To connect to this stream, you'll need to:
- Get the SSE URL for your source using
pd list streams, modifying the URL slightly (see below).
- Connect to the SSE stream, passing your Pipedream API key in the
AuthorizationHTTP header using Bearer Auth.
When you run
pd list streams, you'll see output like the following:
λ pd list streams NAME TYPE VISIBILITY SSE http http private https://rt.pipedream.com/sse/dc/dc_abc123/emits
This SSE URL points to the
/emits stream, which contains your source's events. Change
/observations to connect to the logs stream.
See this repo (opens new window) for an example Node.js app that processes events from a Pipedream SSE stream.
Most programming languages provide SSE clients (opens new window) that facilitate interaction with SSE streams. For example, the Node.js example repo uses the
eventsource npm package (opens new window), which implements the
EventSource API (opens new window).
pd logs command streams logs for a source directly to your shell:
pd logs <source-id-or-name>
Pipedream stores the last 100 logs (standard output and standard error) for each source.