Application Log Streaming

Page last updated: December 24, 2015

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 CC /v2/syslog_drain_urls 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.