Helix
Helix copied to clipboard
Rewrite Log service
This will be a rather large PR meant to enhance (but mostly rewrite) the Log service.
The biggest improvement is that now logs are structured data with pre-defined types, as opposed to the old Log system who was simply a string, void of any context.
So we changed from:
String: "localhost downloaded file Cracker.crc (1.0) from 1.2.3.4"
to
Struct: {type: :download_gateway, file_name: "Cracker.crc (1.0)", ip: "1.2.3.4", network_id: "::"}
To the end user this change is transparent (the struct will be "translated" to the string above anyways). But this allows for:
- easier/better i18n support
- enhanced log editing support / UI
- easier support on log-based features (e.g. Log X should have field Y updated to contain Z)
- [x] Support structured Log format
- [x] Rewrite Log internals
- [x] LogPaginateRequest
- [ ] LogFilterRequest
- [x] LogIndex
- [x] LogHenforcer
- [x] LogForgeRequest
- [x] LogForgeHenforcer
- [x] LogFactor
- [x] LogForgeProcess
- [x] Create
- [x] Edit
- [x] LogRecoverRequest
- [x] LogRecoverHenforcer
- [x] LogRecoverProcess
- [x] Global
- [x] Custom
- [x] LogAddedEvent
- [x] LogRecoveredEvent
- [x] LogRevisedEvent
- [x] LogDestroyedEvent
Incidental
- Removed LogFactory
- Completely removed
ex_machina
dependency :tada: - Added
tgt_log_id
onProcess.t
struct - Added
set_relay/3
macro forHelix.Factor
- Added
SIGRETARGET
, i.e. support for recursive process type (#324) - Added
custom
pre-hook atProcess.Executable
Ebert has finished reviewing this Pull Request and has found:
- 5 possible new issues (including those that may have been commented here).
- 6 fixed issues! 🎉
You can see more details about this review at https://ebertapp.io/github/HackerExperience/Helix/pulls/410.