[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [MirageOS-devel] test, quality, tcpip

An other point which is cruelly missing is a proper logging system - which is central when debugging runtime errors.

Thomas, do you have any thoughts about what a proper logging system would look like? What features it would provide? I'm experimenting a little with this already, making a logger that can write messages to the console and also send as syslog. I'd be interested in trying to expand this and make it into something generally useful for Mirage but would probably need a bit of guidance to begin with. 

I'm aware of https://github.com/UnixJunkie/dolog and wondering whether this is a good starting point, if it were functorized to accept the Mirage console signature?

As Anil said, I don't thing re-using dolog is a good idea (dolog serves its purposes nicely but it is not what we want as a general logging library for MirageOS). I have not yet a very clear idea of what we should do, but I plan to spend some time soon to come up with a more concrete proposal.

Few remarks:

- I'm in favour of designing something from scratch
- I also don't particularly like the usual warn/debug/info/error stuff (I tend to use debug/error only anyway)
- Using Irmin is a good idea if it's available but I'd like to not enforce it as a dependency if possible
- I'm not a big fan of passing the logging function as an argument as this means you need to thread it everywhere (and if you want to add some logging to a function, you'll need to change its type) so the design of Lwt_log is compelling - but need to thing a bit more about that
- I quite like the "with-trace" function of bigloo[1] and I found it quite useful in practice (although I would replace the trace level by some section names that you could turn-off/on dynamically and/or statically)
- It is always hard to find the right balance of things to log or to not log and I'm not sure how we can have a general solution for this without runtime control. Spamming the log traces is very useful when you debug and or when you try to fix a weird production issue, but you also want to be fast and avoid DoS ...
- I also quite liked reading stuff about Finagle/Zipkin[2] (although I never used it in practice) and that would be quite nice if we had a similar logging story for MirageOS
- If anyone knows a good existing logging library that they used in other languages, I'm keen to have a look.


MirageOS-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.