Packages
timber
2.5.3
3.1.2
3.1.1
3.1.0
3.0.0
3.0.0-alpha.3
3.0.0-alpha.2
3.0.0-alpha.1
2.8.4
2.8.3
2.8.2
2.8.1
2.8.0
2.7.0
2.6.1
2.6.0
2.5.6
2.5.5
2.5.4
2.5.3
2.5.2
2.5.1
2.5.0
2.4.5
2.4.4
2.4.3
2.4.2
2.4.1
2.4.0
2.3.4
2.3.3
2.3.1
2.3.0
2.2.1
2.2.0
2.1.8
2.1.7
2.1.6
2.1.5
2.1.4
2.1.3
2.1.2
2.1.1
2.1.0
2.0.2
2.0.1
2.0.0
2.0.0-rc7
2.0.0-rc6
2.0.0-rc5
2.0.0-rc4
2.0.0-rc3
2.0.0-rc2
2.0.0-rc1
1.1.18
1.1.17
1.1.16
1.1.15
1.1.14
1.1.13
1.1.12
1.1.11
1.1.10
1.1.9
1.1.8
1.1.7
1.1.6
1.1.5
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
1.0.16
1.0.15
1.0.14
1.0.13
1.0.12
1.0.11
1.0.10
1.0.9
1.0.8
1.0.7
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.2
0.3.1
0.3.0
0.2.3
0.2.2
0.2.1
0.2.0
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
🌲 Great Elixir Logging Made Easy. Official Timber.io Integration.
Current section
Files
Jump to
Current section
Files
lib/timber/events/channel_receive_event.ex
defmodule Timber.Events.ChannelReceiveEvent do
@moduledoc """
The `ChannelReceiveEvent` represents the reception of an event for a given topic on a channel.
The defined structure of this data can be found in the log event JSON schema:
https://github.com/timberio/log-event-json-schema
"""
@type t :: %__MODULE__{
channel: String.t,
topic: String.t,
event: String.t,
metadata_json: String.t | nil,
}
@enforce_keys [:channel, :topic, :event]
defstruct [
:channel,
:topic,
:event,
:metadata_json
]
@metadata_json_byte_limit 8_192
@doc """
Builds a new struct taking care to:
* Converts `:params` to `:params_json` that satifies the Timber API requirements
"""
@spec new(Keyword.t) :: t
def new(opts) do
metadata_json =
case Keyword.get(opts, :metadata_json, nil) do
nil ->
nil
metadata_json ->
metadata_json
|> Timber.Utils.Logger.truncate_bytes(@metadata_json_byte_limit)
|> to_string()
end
new_opts = Keyword.put(opts, :metadata_json, metadata_json)
struct!(__MODULE__, new_opts)
end
@doc """
Message to be used when logging.
"""
@spec message(t) :: IO.chardata
def message(%__MODULE__{channel: channel, topic: topic, event: event}) do
["Received ", to_string(event), " on \"", to_string(topic), "\" to ", to_string(channel)]
end
end