jvm-stash

send your log into logstash

License

License

Categories

Categories

Ant Build Tools
GroupId

GroupId

com.wuriyanto
ArtifactId

ArtifactId

jvm-stash
Last Version

Last Version

1.0
Release Date

Release Date

Type

Type

jar
Description

Description

jvm-stash
send your log into logstash
Project URL

Project URL

http://maven.apache.org
Source Code Management

Source Code Management

https://github.com/wuriyanto48/jvm-stash/tree/master

Download jvm-stash

How to add to project

<!-- https://jarcasting.com/artifacts/com.wuriyanto/jvm-stash/ -->
<dependency>
    <groupId>com.wuriyanto</groupId>
    <artifactId>jvm-stash</artifactId>
    <version>1.0</version>
</dependency>
// https://jarcasting.com/artifacts/com.wuriyanto/jvm-stash/
implementation 'com.wuriyanto:jvm-stash:1.0'
// https://jarcasting.com/artifacts/com.wuriyanto/jvm-stash/
implementation ("com.wuriyanto:jvm-stash:1.0")
'com.wuriyanto:jvm-stash:jar:1.0'
<dependency org="com.wuriyanto" name="jvm-stash" rev="1.0">
  <artifact name="jvm-stash" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.wuriyanto', module='jvm-stash', version='1.0')
)
libraryDependencies += "com.wuriyanto" % "jvm-stash" % "1.0"
[com.wuriyanto/jvm-stash "1.0"]

Dependencies

compile (2)

Group / Artifact Type Version
com.fasterxml.jackson.core : jackson-core jar 2.9.10
com.fasterxml.jackson.core : jackson-databind jar 2.9.10.4

test (1)

Group / Artifact Type Version
junit : junit jar 3.8.1

Project Modules

There are no modules declared in this project.

JVM Stash

Logstash Client for Java Virtual Machine

Note (If you use TLS)

You should convert your server certificate into PKCS12 format.

$ openssl pkcs12 -export -inkey your_server.key -in your_server.crt -out server.p12

Install

<dependency>
  <groupId>com.wuriyanto</groupId>
  <artifactId>jvm-stash</artifactId>
  <version>1.0</version>
</dependency>

Usage

Basic

Stash stash = new Stash.Builder()
                .setHost("localhost")
                .setPort(5000)
                .build();

try {
    stash.connect();
} catch (StashException e) {
    System.out.println(e.getMessage());
    System.exit(1);
}

stash.write("hello logstash".getBytes())

try {
    stash.close();
} catch (IOException e) {
    System.out.println(e.getMessage());
    System.exit(1);
}

TLS Connection

Assumed you already enable ssl config inside logstash.conf

input {
	tcp {
		port => 5000
		ssl_enable => true
		ssl_cert => "/etc/server.crt"
		ssl_key => "/etc/server.key"
		ssl_verify => false
	}
}

Let's write some code again

InputStream keyStore = null;

try {
    keyStore = new FileInputStream("/path/to/your/server.p12");
} catch (Exception e) {
    System.out.println(e.getMessage());
    System.exit(1);
}

Stash stash = new Stash.Builder()
                .setHost("localhost")
                .setPort(5000)
                // makesure set to true
                .setSecure(true)
                .setKeyStoreIs(keyStore)
                .setKeyStorePassword("damn12345")
                .build();

try {
    stash.connect();
} catch (StashException e) {
    System.out.println(e.getMessage());
    System.exit(1);
}

stash.write("hello logstash".getBytes())

try {
    stash.close();
} catch (IOException e) {
    System.out.println(e.getMessage());
    System.exit(1);
}

With Java's standar logging

private static final Logger LOGGER = Logger.getLogger(AppLogger.class.getName());

public static void main(String[] args) throws StashException {
        InputStream keyStore = null;
        
        try {
            keyStore = new FileInputStream("/path/to/your/server.p12");
        } catch (Exception e) {
            System.out.println(e.getMessage());
            System.exit(1);
        }
        
        Stash stash = new Stash.Builder()
                        .setHost("localhost")
                        .setPort(5000)
                        // makesure set to true
                        .setSecure(true)
                        .setKeyStoreIs(keyStore)
                        .setKeyStorePassword("damn12345")
                        .build();
        
        try {
            stash.connect();
        } catch (StashException e) {
            System.out.println(e.getMessage());
            System.exit(1);
        }
        
        // Set Handler with StashLogHandler
        LOGGER.addHandler(new StashLogHandler(stash));
        
        // Use standar log that uses StashLogHandler
        LOGGER.log(Level.INFO, "hello");
        
        try {
            stash.close();
        } catch (IOException e) {
            System.out.println(e.getMessage());
            System.exit(1);
        }

Spring Boot Integration

https://github.com/wuriyanto48/spring-boot-starter-jvmstash

Versions

Version
1.0