LogVoyage - logging SaaS written in GoLang

No longer maintained, sorry. Completely rewritten v2 is going to be released soon. Please follow http://github.com/logvoyage

LogVoyage - fast and simple open-source logging service

LogVoyage allows you to store and explore your logs in real-time with friendly web ui.

Dashboard Live logs

  • Gitter
  • Click here to lend your support to: LogVoyage and make a donation at pledgie.com !
  • TravisCI

Table of Contents generated with DocToc

Installation

Pre-Requirements.

Installing

Installing LogVoyage is as easy as installing any other go package:

go get github.com/firstrow/logvoyage
logvoyage create_users_index

Usage

Once you installed LogVoyage you need to start backend and web servers.

logvoyage start-all

Or you can start/stop servers separately

logvoyage backend
logvoyage web

Once server started you can access it at http://localhost:3000. Execute logvoyage help for more info about available commands.

Sending data to storage

By default LogVoyage opens two backend ports accesible to the outsise world.

  1. 27077 - TCP port
  2. 27078 - HTTP port

Telnet

NOTE: Keep in mind to change `API_KEY` and `LOG_TYPE`.
You can find your api key at http://localhost:3000/profile page.
telnet 127.0.0.1 27077
API_KEY@LOG_TYPE {"message": "login", "user_id": 1}
API_KEY@LOG_TYPE simple text message

Now you can see your messages at http://localhost:3000 and try some queries

Curl

Or we can use curl POST request to send messages. Each message should be separated by new line.

echo 'This is simple text message' | curl -d @- http://localhost:27078/bulk\?apiKey\=API_KEY\&type\=LOG_TYPE
echo '{"message": "JSON format also supported", "action":"test"}' | curl -d @- http://localhost:27078/bulk\?apiKey\=API_KEY\&type\=LOG_TYPE

Search data

Refer to Query String Syntax for more info about text queries available.

Examples:

user_id:1
simple*
amount:>10 and status:completed

Third-party clients

If you know any programming language, you can join our project and implement LogVoyage client.

Submitting a Pull Request

  1. Propose a change by opening an issue.
  2. Fork the project.
  3. Create a topic branch.
  4. Implement your feature or bug fix.
  5. Commit and push your changes.
  6. Submit a pull request.

Front-end development

Bower

To manage 3rd-party libraries simply add it to static/bower.json and run

bower install

Building

We are using grunt to build project js and css files. Execute next commands to setup environment:

npm install
grunt

After grunt is done, you can find result files in static/build directory.

Auto rebuild

To automatically rebuild js, css, coffee, less files simply run in console

grunt watch

WebSocket messages

// Sample coffescript code
PubSub.subscribe "log_message", (type, data) ->
  console.log data.message

Sample messages:

{
	"type": "log_message",
	"log_type": "nginx_access",
	"message": "test received log message goes here..."
}
{
	"type": "logs_per_second",
	"count": 5
}

Roadmap v0.1

  • Daemons
  • Zero-downtime deployment
  • Finish web ui
  • Docker image
  • Docs

License

LogVoyage is available without any costs under an MIT license. See LICENSE file for details.

Comments
  • Install error

    Install error

    I'm running go get github.com/firstrow/logvoyage and I get this errror # github.com/firstrow/logvoyage/web/routers/home ../firstrow/logvoyage/web/routers/home/home.go:129: cannot use searchResults (type *goes.Response) as type goes.Response in return argument

  • Configuration

    Configuration

    Place the possibility of setting. Via configuration files.

    I suggest in the YAML format.

    Reason:

    • [x] Greater flexibility.
    • [x] Already exists "users" index in ElasticSearch.
    • [x] Url different for the connection to the Redis (not yet implemented).
    • [ ] Url different for the connection to the ElasticSearch (not yet implemented).
    • [ ] Different cryptographic token (not yet implemented).

    How it would work:

    • Add the flag config in command to the absolute path of the configuration file.
    • Not being required. Because it would look in the default location: /etc/logvoyage.yml
    • To generate the default configuration file, use the command: logvoyage configuration > /etc/logvoyage.yml

    What do you think?

  • Add a Gitter chat badge to readme.md

    Add a Gitter chat badge to readme.md

    firstrow/logvoyage now has a Chat Room on Gitter

    @firstrow has just created a chat room. You can visit it here: https://gitter.im/firstrow/logvoyage.

    This pull-request adds this badge to your readme.md:

    Gitter

    If my aim is a little off, please let me know.

    Happy chatting.

    PS: Click here if you would prefer not to receive automatic pull-requests from Gitter in future.

  • cannot find package

    cannot find package "code.google.com/p/go.net/websocket"

    web_socket\web_socket.go:23:2: cannot find package "code.google.com/p/go.net/websocket"

    code.google.com/p/go.net/websocket is golang.org/x/net?

  • Feature request: implement syslog backend

    Feature request: implement syslog backend

    Act as a syslogd remote (UDP, TCP, TCP+TLS) so logvoyage can easily used by everyone for nearly everything by just adding:

    *.*                                         @<logvoyage-host>
    

    to ryslogd.conf

Gomol is a library for structured, multiple-output logging for Go with extensible logging outputs

gomol Gomol (Go Multi-Output Logger) is an MIT-licensed structured logging library for Go. Gomol grew from a desire to have a structured logging libra

Sep 26, 2022
A simple logging module for go, with a rotating file feature and console logging.

A simple logging module for go, with a rotating file feature and console logging. Installation go get github.com/jbrodriguez/mlog Usage Sample usage W

Dec 14, 2022
FactorLog is a logging infrastructure for Go that provides numerous logging functions for whatever your style may be
FactorLog is a logging infrastructure for Go that provides numerous logging functions for whatever your style may be

FactorLog FactorLog is a fast logging infrastructure for Go that provides numerous logging functions for whatever your style may be. It could easily b

Aug 3, 2022
Package logging implements a logging infrastructure for Go
Package logging implements a logging infrastructure for Go

Golang logging library Package logging implements a logging infrastructure for Go. Its output format is customizable and supports different logging ba

Nov 10, 2021
The Simplest and worst logging library ever written

gologger A Simple Easy to use go logger library. Displays Colored log into console in any unix or windows platform. You can even store your logs in fi

Sep 26, 2022
GoVector is a vector clock logging library written in Go.
GoVector is a vector clock logging library written in Go.

GoVector is a vector clock logging library written in Go. The vector clock algorithm is used to order events in distributed systems in the absence of a centralized clock. GoVector implements the vector clock algorithm and provides feature-rich logging and encoding infrastructure.

Nov 28, 2022
A reusable logger module for basic logging, written in Go
A reusable logger module for basic logging, written in Go

logger A reusable logger module for basic logging, written in Go. Usage Client p

Jan 8, 2022
Simple and blazing fast lockfree logging library for golang
Simple and blazing fast lockfree logging library for golang

glg is simple golang logging library Requirement Go 1.11 Installation go get github.com/kpango/glg Example package main import ( "net/http" "time"

Nov 28, 2022
Logging library for Golang

GLO Logging library for Golang Inspired by Monolog for PHP, severity levels are identical Install go get github.com/lajosbencz/glo Severity levels Deb

Sep 26, 2022
Utilities for slightly better logging in Go (Golang).

logutils logutils is a Go package that augments the standard library "log" package to make logging a bit more modern, without fragmenting the Go ecosy

Dec 16, 2022
A Go (golang) package providing high-performance asynchronous logging, message filtering by severity and category, and multiple message targets.

ozzo-log Other languages 简体中文 Русский Description ozzo-log is a Go package providing enhanced logging support for Go programs. It has the following fe

Dec 17, 2022
Golang logging library
Golang logging library

Golang logging library Package logging implements a logging infrastructure for Go. Its output format is customizable and supports different logging ba

Dec 27, 2022
Parametrized JSON logging library in Golang which lets you obfuscate sensitive data and marshal any kind of content.
Parametrized JSON logging library in Golang which lets you obfuscate sensitive data and marshal any kind of content.

Noodlog Summary Noodlog is a Golang JSON parametrized and highly configurable logging library. It allows you to: print go structs as JSON messages; pr

Oct 27, 2022
Cloud logging library in golang

?? logg Open Source Cloud logging library in Go. About the project Connect your golang microservices logs with this engine! Send your logs to kafka, r

Nov 8, 2021
Circular logging for Golang

Chainsaw Circular buffer logging framework for Go. This logging library will keep the last N log messages around. This allows you to dump the logs at

Nov 18, 2022
Go-logging-logrus - Learn how to log management in golang with logrus

Learn how to logging in golang with logrus How to run this project git clone htt

Jan 19, 2022
Logging, distilled

What is distillog? distillog aims to offer a minimalistic logging interface that also supports log levels. It takes the stdlib API and only slightly e

Dec 14, 2022
Simple and configurable Logging in Go, with level, formatters and writers

go-log Logging package similar to log4j for the Golang. Support dynamic log level Support customized formatter TextFormatter JSONFormatter Support mul

Sep 26, 2022
Go implementation of systemd Journal's native API for logging

journald Package journald offers Go implementation of systemd Journal's native API for logging. Key features are: based on a connection-less socket wo

Dec 23, 2022