> For the complete documentation index, see [llms.txt](https://docs.fluentd.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.fluentd.org/0.12/articles/scala.md).

# Scala

The '[fluent-logger-scala](http://github.com/oza/fluent-logger-scala)' library is used to post records from Scala applications to Fluentd.

This article explains how to use the fluent-logger-scala library.

## Prerequisites

* Basic knowledge of Scala and sbt
* Basic knowledge of Fluentd
* Scala 2.9.0 or 2.9.1
* sbt 0.12.0 or later

## Installing Fluentd

Please refer to the following documents to install fluentd.

* [Install Fluentd with rpm Package](/0.12/articles/install-by-rpm.md)
* [Install Fluentd with deb Package](/0.12/articles/install-by-deb.md)
* [Install Fluentd with Ruby Gem](/0.12/articles/install-by-gem.md)
* [Install Fluentd from source](/0.12/articles/install-from-source.md)

## Modifying the Config File

Next, please configure Fluentd to use the [forward Input plugin](broken://pages/-LT-Ygoo0Q0rcub1BgFs) as its data source.

```
<source>
  @type forward
  port 24224
</source>
<match fluentd.test.**>
  @type stdout
</match>
```

Please restart your agent once these lines are in place.

```
# for rpm/deb only
$ sudo /etc/init.d/td-agent restart
```

## Using fluent-logger-scala

First, please add the following lines to build.sbt. The logger's revision information can be found in the [ChangeLog](https://github.com/oza/fluent-logger-scala/blob/master/ChangeLog).

```
resolvers += "Apache Maven Central Repository" at "http://repo.maven.apache.org/maven2/"

libraryDependencies += "org.fluentd" %% "fluent-logger-scala" % "0.3.0"
```

or

```
resolvers += "Sonatype Repository" at "http://oss.sonatype.org/content/repositories/releases"

libraryDependencies += "org.fluentd" %% "fluent-logger-scala" % "0.3.0"
```

Next, please insert the following lines into your application. Further information regarding the API can be found [here](https://github.com/oza/fluent-logger-scala).

```
import org.fluentd.logger.scala.FluentLoggerFactory
import scala.collection.mutable.HashMap

object Sample {
  val LOG = FluentLoggerFactory.getLogger("fluentd.test")

  def main(args: Array[String]): Unit = {

    ...
    val data = new HashMap[String, String](.md);
    data.put("from", "userA");
    data.put("to", "userB");
    LOG.log("follow", data);
    ...
  }

}
```

Executing the script will send the logs to Fluentd.

```
$ sbt
> run
```

The logs should be output to `/var/log/td-agent/td-agent.log` or stdout of the Fluentd process via the [stdout Output plugin](broken://pages/-LR7PNyBmzLJzywBPLgR).

## Production Deployments

### Output Plugins

Various [output plugins](broken://pages/-LS28ivUSIcRHGAAQh8E) are available for writing records to other destinations:

* Examples
  * [Store Apache Logs into Amazon S3](/0.12/articles/apache-to-s3.md)
  * [Store Apache Logs into MongoDB](/0.12/articles/apache-to-mongodb.md)
  * [Data Collection into HDFS](/0.12/articles/http-to-hdfs.md)
* List of Plugin References
  * [Output to Another Fluentd](broken://pages/-LS2EqvLLGnjfrxO0sXh)
  * [Output to MongoDB](broken://pages/-LS2EqvW0RVW2fzsSUZq) or [MongoDB ReplicaSet](broken://pages/-LS2EqvXidlzvnp184Kn)
  * [Output to Hadoop](broken://pages/-LS2EqvUNSlo3ADF-Erh)
  * [Output to File](broken://pages/-LS2EqvITh0DM3zjDzYH)
  * [etc...](http://fluentd.org/plugin/)

### High-Availability Configurations of Fluentd

For high-traffic websites (more than 5 application nodes), we recommend using a high availability configuration of td-agent. This will improve data transfer reliability and query performance.

* [High-Availability Configurations of Fluentd](/0.12/deployment/high-availability.md)

### Monitoring

Monitoring Fluentd itself is also important. The article below describes general monitoring methods for td-agent.

* [Monitoring Fluentd](/0.12/deployment/monitoring.md)

If this article is incorrect or outdated, or omits critical information, please [let us know](https://github.com/fluent/fluentd-docs-gitbook/issues?state=open). [Fluentd](http://www.fluentd.org/) is a open source project under [Cloud Native Computing Foundation (CNCF)](https://cncf.io/). All components are available under the Apache 2 License.
