# FluentD Output & Formatter Plugins: Syslog RFC5424
[![Build Status](https://travis-ci.org/cloudfoundry/fluent-plugin-syslog_rfc5424.svg?branch=main)](https://travis-ci.org/cloudfoundry/fluent-plugin-syslog_rfc5424)
Formatter plugin adheres to [RFC5424](https://tools.ietf.org/html/rfc5424).
Output plugin adheres to [RFC6587](https://tools.ietf.org/html/rfc6587) and [RFC5424](https://tools.ietf.org/html/rfc5424).
## Installation
Add this line to your application's Gemfile:
```ruby
gem 'fluentd_syslog_rfc5424'
```
And then execute:
$ bundle
Or install it yourself as:
$ gem install fluentd_syslog_rfc5424
## Output Usage
```
@type syslog_rfc5424
host SYSLOG-HOST
port SYSLOG-PORT
@type memory
flush_interval 10s
```
### Configuration
| name | type | description |
| -------------- | ------- | --------------------------------- |
| host | string | syslog target host |
| port | integer | syslog target port |
| transport | string | transport protocol (tls [default], udp, or tcp) |
| insecure | boolean | skip ssl validation |
| trusted_ca_path | string | file path to ca to trust |
#### Format Section
Defaults to `syslog_rfc5424`
| name |type | description |
| -------------- | ------- | ------- |
| rfc6587_message_size | boolean | prepends message length for syslog transmission (true by default) |
| hostname_field | string | sets host name in syslog from field in fluentd, delimited by '.' (default hostname) |
| app_name_field | string | sets app name in syslog from field in fluentd, delimited by '.' (default app_name) |
| proc_id_field | string | sets proc id in syslog from field in fluentd, delimited by '.' (default proc_id) |
| message_id_field | string | sets msg id in syslog from field in fluentd, delimited by '.' (default message_id) |
| structured_data_field | string | sets structured data in syslog from field in fluentd, delimited by '.' (default structured_data) |
| log_field | string | sets log in syslog from field in fluentd, delimited by '.' (default log) |
## Formatter Usage
```
@type syslog_rfc5424
@type syslog_rfc5424
app_name_field example.custom_field_1
proc_id_field example.custom_field_2
```
## Development
After checking out the repo, run `bundle install` to install dependencies. Then, run `bundle exec rake` to run the tests. You can also run `bundle console` for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `fluentd_syslog_rfc5424.gemspec`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
## Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/cloudfoundry/fluentd_syslog_rfc5424.
## Publishing
(these steps happen automatically in this pipeline: https://release-integration.ci.cf-app.com/teams/main/pipelines/cf-k8s-logging-validation)
1. Run tests `bundle exec rake`
1. Push changes
1. Create & push git tag with version
1. Change version in `.gemspec`
1. Build gem `gem build fluent-plugin-syslog_rfc5424`
1. Push `.gem` file to rubygems