stashlog

Crates.iostashlog
lib.rsstashlog
version0.0.13
sourcesrc
created_at2024-10-05 11:43:00.514614
updated_at2024-10-05 20:01:57.134506
descriptionA minimalistic Rust library for Logstash Event format logging.
homepage
repository
max_upload_size
id1397625
size24,829
medunes (MedUnes)

documentation

README

Rust StashLog

A minimalistic Rust library for Logstash Event format logging.

Release Build

Usage

use medunes::stashlog;
fn main() {
        let logger = stashlog::Logger {
            config: Config {
                version: 1,
                app_name: "my-app".to_string(),
                file_path: "/home/my-app/logs/logstash.log".to_string(),
            },
        };
        logger.info("User Logged in");
        logger.info_extra("User Logged in", &json!({"user_id": user_id}).to_string());
        logger.error_extra("Maximum login attemps reached", &json!({"user_id": user_id}).to_string());

An example of production case scenario

1- Generate with StashLog

Your rust application uses the stashlog package to output logs to a preconfigured file path: for example here /opt/example-app/log-path/logstash.log

2- Push with Filebeat

  • We suppose the app on the server writes logs to /opt/example-app/log-path/logstash.log
  • Here is an example filebeat configuration which keeps pusing the log changes to a Logstash server supposedly at some-server.logstash.com:5044
#/etc/filebeat/filebeat.yml
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /opt/example-app/log-path/logstash.log
  fields:
    log_type: logstash

output.logstash:
  hosts: ["some-server.logstash.com:5044"]
  transport: udp

3- Collect & View with ELK

  • Logstash, if correctly configured, will index the incoming traffic to Elasticsearch
  • You can then use Kibana to search, filter and visualize your application's logs.

ELK Logging Stack

Credits

Commit count: 0

cargo fmt