You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Logger interface is a bit of a mess, doing a bunch of different things some Mill-internal and some user-facing. #3577 extends it a bit but makes it even more messy.
Probably we should have more narrow specialized Logger interfaces for different parts of the codebase, e.g. the logger inside a Task would have a ticker, whereas the logger outside would not, and a top-level logger would have more power to do things like configuring the prompt that task-specific loggers would not have. close() probably needs to be re-thought since the lifecycle of the various loggers is all different, with some short-lived and some long-live
The whole color scheme and debug/info/warning/error conventions also need to be redone. Currently infoColor is blue and normally used for "less important" things, but then logger.info uses it for normal-important things. And how should a user decide between info and just println? When should subclasses of Logger put logic into overriding info vs injecting logic into stdout/stderr streams?
Arguably, all the concrete FooLogger classes should be private[mill], since there's no reason that a Mill user would need to instantiate their own PrintLogger or whatever.
This would break bincompat and would have to go into 0.13.0
The text was updated successfully, but these errors were encountered:
The
Logger
interface is a bit of a mess, doing a bunch of different things some Mill-internal and some user-facing. #3577 extends it a bit but makes it even more messy.Probably we should have more narrow specialized
Logger
interfaces for different parts of the codebase, e.g. the logger inside aTask
would have a ticker, whereas the logger outside would not, and a top-level logger would have more power to do things like configuring the prompt that task-specific loggers would not have.close()
probably needs to be re-thought since the lifecycle of the various loggers is all different, with some short-lived and some long-liveThe whole color scheme and debug/info/warning/error conventions also need to be redone. Currently
infoColor
is blue and normally used for "less important" things, but thenlogger.info
uses it for normal-important things. And how should a user decide betweeninfo
and justprintln
? When should subclasses ofLogger
put logic into overridinginfo
vs injecting logic into stdout/stderr streams?Arguably, all the concrete
FooLogger
classes should beprivate[mill]
, since there's no reason that a Mill user would need to instantiate their ownPrintLogger
or whatever.This would break bincompat and would have to go into 0.13.0
The text was updated successfully, but these errors were encountered: