# LogSnag
LogSnag is a simple client for the LogSnag API.
This is an unofficial library, and isn't supported by LogSnag. It will try to
follow the functionality of [the official Node.js
client](https://github.com/LogSnag/logsnag.js) for the most part, with some
slight differences in naming conventions.
Full documentation of the API and fields that are used can be found on [the
official LogSnag docs page](https://docs.logsnag.com/).
## Installation
Install the package by adding `log_snag` to your list of dependencies in
`mix.exs`:
```elixir
def deps do
[
{:log_snag, "~> 1.0"}
]
end
```
## Configuration
The following application configuration must be in place or else errors will be
thrown at runtime:
```elixir
config :log_snag,
api_key: YOUR_API_KEY,
project: YOUR_PROJECT_NAME
```
Make sure to replace `YOUR_API_KEY` with a key from your [LogSnag
dashboard](https://app.logsnag.com/dashboard/settings/api) and
`YOUR_PROJECT_NAME` with the name of the project to which you wish to publish
events and insights.
## Usage
With the package installed and configured, you can use it in your application
like this:
```elixir
# Publish an event
event_params = %{
channel: "waitlist",
event: "User Joined",
description: "Email: john@example.com",
icon: "🎉",
tags: %{
name: "john doe",
email: "john@example.com",
},
notify: true
}
LogSnag.publish_event(event_params)
# Publish a new insight or update an existing one
insight_params = %{
title: "User Count",
value: 100,
icon: "👨"
}
LogSnag.publish_insight(insight_params)
```
## Contributing
Feedback, feature requests, and fixes are welcomed and encouraged. Please make
appropriate use of [Issues](https://github.com/dnsbty/log_snag/issues) and [Pull
Requests](https://github.com/dnsbty/log_snag/pulls).