View Source Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.6.0 - 2024-10-04
Added
- New utility to test
:tower
is well configured and working. Either by invoking mix taskmix tower.test
or directly calling functionTower.test/0
. It will generate a test exception and report it to whichever reporters you have configured.
Changed
Tower.EphemeralReporter
is now automatically started as a child ofTower.Supervisor
. If you were including it as a child of your application supervisor, you can safely remove it.Tower.EphemeralReporter
now keeps only the 50 most recent events to be light on resource consumption, as initially intened.Tower.attach()
is now automatically called duringTower
start. You no longer need to manually call it as part of your applicationstart
function. Keeping it won't fail but it is a no-operation. You can safely remove it.
0.5.3 - 2024-09-24
Added
Tower.ReportEventError
improved error message prints original exception message also. Helps when building and debugging errors in reporters implementingTower.Reporter
behavior.
0.5.2 - 2024-09-16
Added
Tower.is_normal_exit
function and guard for use when manually catching exits
Fixed
- Bug/error in one reporter doesn't affect other reporters
0.5.1 - 2024-08-23
Added
- Documentation improvements
0.5.0 - 2024-08-20
Added
- Oban support
- I.e: Automatic handling of errors occurring inside an Oban job perform.
- Bandit support
- I.e: Automatic handling of errors occurring inside plug dispatch call when using
Bandit
adapter.
- I.e: Automatic handling of errors occurring inside plug dispatch call when using
Fixed
- Properly handle exits ocurring inside a plug dispatch call when using
Plug.Cowboy
adapter.
0.4.0 - 2024-08-16
Added
Tower.Event
plug_conn
field with aPlug.Conn
if available during handling.
Removed
- Drop support for elixir 1.13 and 1.14 which were not yet fully integrated with
:logger
handlers, which is the main waytower
handles errors. Keep elixir 1.15+ for now.
0.3.0 - 2024-08-15
Added
Tower.Event
datetime
field with aDateTime
value with microseconds precision.
Removed
Tower.Event
time
field.
Changed
Tower.Event
time
field replaced withdatetime
field.
0.2.0 - 2024-08-09
Added
- New
Tower.Event
struct to represent and encapsulate any exception, exit, throw or message. - New
time
field ofTower.Event
struct, including the timestamp with microseconds precision. - New
id
field ofTower.Event
struct, including a timed-based sortable unique value (UUIDv7). - Ablility to manually handle/report exceptions, exits and throws
Tower.handle_exception/2,3
Tower.handle_exit/2,3
Tower.handle_throw/2,3
metadata
field supporting user reported metadataTower.handle_caught/3,4
for easier handling ofcatch kind, reason
Tower.equal_or_greater_level?/2
to aid reporters in comparing log level, e.g. supporting per-reporter reporting level.
Changed
- Reporters (those implementing
Tower.Reporter
behaviour) can now handle events with just one callback:report_event/1
, in replacement ofreport_exception/2,3
,report_exit/2,3
,report_throw/2,3
andreport_message/2,3
callbacks.