Application Log Streaming

Page last updated:

Warning: Pivotal Cloud Foundry (PCF) v2.3 is no longer supported because it has reached the End of General Support (EOGS) phase as defined by the Support Lifecycle Policy. To stay up to date with the latest software and security updates, upgrade to a supported version.

By binding an application to an instance of an applicable service, Cloud Foundry will stream logs for the bound application to the service instance.

  • Logs for all apps bound to a log-consuming service instance will be streamed to that instance
  • Logs for an app bound to multiple log-consuming service instances will be streamed to all instances

To enable this functionality, a service broker must implement the following:

  1. In the catalog endpoint, the broker must include requires: syslog_drain. This minor security measure validates that a service returning a syslog_drain_url in response to the bind operation has also declared that it expects log streaming. If the broker does not include requires: syslog_drain, and the bind request returns a value for syslog_drain_url, Cloud Foundry will return an error for the bind operation.

  2. In response to a bind request, the broker should return a value for syslog_drain_url. The syslog URL has a scheme of syslog, syslog-tls, or https and can include a port number. For example:

    "syslog_drain_url": "syslog://logs.example.com:1234"

How does it work?

  1. Service broker returns a value for syslog_drain_url in response to bind
  2. Loggregator periodically polls an internal Cloud Controller endpoint for updates
  3. Upon discovering a new syslog_drain_url, Loggregator identifies the associated app
  4. Loggregator streams app logs for that app to the locations specified by the service instances’ syslog_drain_urls

Users can manually configure app logs to be streamed to a location of their choice using User-provided Service Instances. For details, see Using Third-Party Log Management Services.