# `Tower.Event`
[🔗](https://github.com/mimiquate/tower/blob/main/lib/tower/event.ex#L1)

A struct representing a captured event.

Tower converts every captured error and message into a struct of this type
before passing along to reporters.

# `error_kind`

```elixir
@type error_kind() :: :error | :exit | :throw
```

# `level`

```elixir
@type level() :: :logger.level()
```

# `non_error_kind`

```elixir
@type non_error_kind() :: :message
```

# `reason`

```elixir
@type reason() :: Exception.t() | term()
```

# `t`

```elixir
@type t() :: %Tower.Event{
  by: atom() | nil,
  datetime: DateTime.t(),
  id: UUIDv7.t(),
  kind: error_kind() | non_error_kind(),
  level: level(),
  log_event: :logger.log_event() | nil,
  metadata: map(),
  plug_conn: struct() | nil,
  reason: reason(),
  similarity_id: non_neg_integer(),
  stacktrace: Exception.stacktrace() | nil
}
```

A struct representing a captured event.

Tower converts every captured error and message into a struct of this type
before passing along to reporters.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
