Java

The fluent-logger-java library is used to post records from Java applications to Fluentd.

This article explains how to use it.

Prerequisites

  • Basic knowledge of Java

  • Basic knowledge of Fluentd

  • Java 7 or higher

Installing Fluentd

Please refer to the following documents to install fluentd:

Modifying the Config File

Configure Fluentd to use the forward input plugin as its data source:

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

Restart agent after configuring.

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

# or systemd
$ sudo systemctl restart td-agent.service

Using fluent-logger-java

Add the following dependency configuration to pom.xml. The logger's revision information can be found in CHANGES.txt:

<dependencies>
  ...
  <dependency>
    <groupId>org.fluentd</groupId>
    <artifactId>fluent-logger</artifactId>
    <version>${logger.version}</version>
  </dependency>
  ...
</dependencies>

Here's a sample Java test application:

import java.util.HashMap;
import java.util.Map;
import org.fluentd.logger.FluentLogger;

public class Main {
    private static FluentLogger LOG = FluentLogger.getLogger("fluentd.test");

    public void doApplicationLogic() {
        // ...
        Map<String, Object> data = new HashMap<String, Object>();
        data.put("from", "userA");
        data.put("to", "userB");
        LOG.log("follow", data);
        // ...
    }
}

More information on the Java API can be found here.

Executing the above program will send the logs to Fluentd:

$ java -jar test.jar

The logs should be output to /var/log/td-agent/td-agent.log or the standard output of the Fluentd process via stdout output plugin.

Production Deployments

Output Plugins

Various output plugins are available for writing records to other destinations:

High-Availability Configurations of Fluentd

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

Monitoring

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

If this article is incorrect or outdated, or omits critical information, please let us know. Fluentd is an open-source project under Cloud Native Computing Foundation (CNCF). All components are available under the Apache 2 License.

Last updated