Skip to content

Things to make different next time around (slog v3?)

Dawid Ciężarkiewicz edited this page Jun 21, 2018 · 11 revisions

If this is to ever happen, it should happen after log is 1.0 or has settled enough so there's a clear compatibility story here.

  • The whole defaulting to disable debug and trace in release build is probably a bad idea.
  • The stuff that is behind flags now, should be standard.
  • Drain::log to take &SendSyncRefUnwindSafeKV or something, instead of Owned.
  • Make Logger a trait so people can extend it.
  • https://github.com/slog-rs/slog/issues/169
  • Support named format arguments with nicness like {foo:02X} - probably requires turning macros into procedural macros.
  • Use serde-erased instead of Serializer? https://github.com/rust-lang-nursery/log/issues/149#issuecomment-369130459
  • use failure::Error for error handling?

Notes:

Logger and Drain are kind of the same thing. Logger is just an intance of Drain. So we should take Drain everywhere where Logger was expected?

serde_erased is not stable ...

https://github.com/serde-rs/serde/issues/1319 so we can use impl Value for T where T : serde::Serialize ?