# youtrack_logger_backend
[](https://travis-ci.org/unifysell/youtrack_logger_backend)
This is an elixir logger backend inspired by the onkel-dirtus/logger_file_backend.
## References
* the [hex package](https://hex.pm/packages/youtrack_logger_backend)
* the [hex documentation](https://hexdocs.pm/youtrack_logger_backend/readme.html)
* if you have found any issues with the package, please tell us [here](https://github.com/unifysell/youtrack_logger_backend/issues)
## Installation
Add to your deps inside the `mix.exs`:
```elixir
{:youtrack_logger_backend, "~> 0.1"}
```
Run `mix deps.get` to download it.
## Base Application config - required
Add the following to your configuration (this is the minimum required config beside the token):
```elixir
config :logger,
backends: [{Logger.Backend.Youtrack, :youtrack}]
config :logger, :youtrack,
host: "https://xxx.myjetbrains.com/youtrack",
project: "xxx"
```
When configuring the youtrack backend, the keys `host`, `project` and `token` are required.
Add your youtrack url and the project you want to push your issues to.
## Add a youtrack PERMANENT TOKEN - required
Get this token on 'Profile'->'Update personal information and manage logins'->'Authentication' and create a new token or get an existing one here.
You can also have a look at the official manual: https://www.jetbrains.com/help/youtrack/standalone/Manage-Permanent-Token.html
It is recommended to store the secret information inside a separate config like `prod.secret.exs` and not adding it to your version control.
```elixir
config :logger, :youtrack,
token: "xxx"
```
## More configuration options - optional
If you want to, you can also configure the following keys: `format_summary`, `format_description`, `metadata`, `level`.
They all have default settings, so only use them if you want to customize.
Your config could look like this:
```elixir
config :logger,
backends: [{Logger.Backend.Youtrack, :youtrack}]
config :logger, :youtrack,
host: "https://xxx.myjetbrains.com/youtrack",
project: "xxx",
format_summary: "$level: $message\n", #optional
format_description: "$date $time\n$metadata\n", #optional
metadata: [:module, :file, :function, :line], #optional - describes $metadata
level: :error #optional
```