Minimal logging server & clients

Having solved backups, I attacked the the next important thing that gets in the way of building actual functionality: error logging.

I've had some trouble setting up Sentry (possibly more my fault than Sentry's, but it does much more than I need so it's more work). I also tried Loggly which doesn't need server setup, but it captured mostly irrelevant syslog stuff and I'd need to pay a lot to keep logs for more than 7 days.

So I figured I'd make something really simple, free and customizable. For small projects, all I really want is to see if problems occur, which is pretty simply, so I feel the software should be simple too. If you get a million unique visitors and 10 thousand log entries per day, maybe use another solution.

The server from the package currently does several things:

  • Show logged messages, which you can filter by level.
  • Resolve messages to remove them from the list (can be undone).
  • Use secret keys as authentication to prevent unauthorized logs.
  • Easily log from multiple sources and revoke keys for specific sources.
  • Logs some meta info, like who resolved an entry and which IP submitted it.

In essence, logging is simply a POST request with an authentication token:

curl --silent --show-error --request POST 'https://example.com/log/add/' \
        --data-urlencode "description=$2" --data-urlencode "status=warn" \
        --data-urlencode 'key=DXKIrRzSmo81QTnmaWhMkg7U8ndqtux5';

but there are clients (Django, javascripts) to make sure you don't need to do this yourself.

Sounds useful? Give it a try! It's all explained in the readme.

Multiple clients log to one server

Example view from logging server

Comments

No comments yet

You need to be logged in to comment.