| # Papertrail Hook for Logrus <img src="http://i.imgur.com/hTeVwmJ.png" width="40" height="40" alt=":walrus:" class="emoji" title=":walrus:" /> |
| |
| [Papertrail](https://papertrailapp.com) provides hosted log management. Once stored in Papertrail, you can [group](http://help.papertrailapp.com/kb/how-it-works/groups/) your logs on various dimensions, [search](http://help.papertrailapp.com/kb/how-it-works/search-syntax) them, and trigger [alerts](http://help.papertrailapp.com/kb/how-it-works/alerts). |
| |
| In most deployments, you'll want to send logs to Papertrail via their [remote_syslog](http://help.papertrailapp.com/kb/configuration/configuring-centralized-logging-from-text-log-files-in-unix/) daemon, which requires no application-specific configuration. This hook is intended for relatively low-volume logging, likely in managed cloud hosting deployments where installing `remote_syslog` is not possible. |
| |
| ## Usage |
| |
| You can find your Papertrail UDP port on your [Papertrail account page](https://papertrailapp.com/account/destinations). Substitute it below for `YOUR_PAPERTRAIL_UDP_PORT`. |
| |
| For `YOUR_APP_NAME`, substitute a short string that will readily identify your application or service in the logs. |
| |
| ```go |
| import ( |
| "log/syslog" |
| "github.com/Sirupsen/logrus" |
| "github.com/Sirupsen/logrus/hooks/papertrail" |
| ) |
| |
| func main() { |
| log := logrus.New() |
| hook, err := logrus_papertrail.NewPapertrailHook("logs.papertrailapp.com", YOUR_PAPERTRAIL_UDP_PORT, YOUR_APP_NAME) |
| |
| if err == nil { |
| log.Hooks.Add(hook) |
| } |
| } |
| ``` |