[RFC] Allow arbitrary logger types #1736
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Intended to fix #1735.
This is a possible solution to allowing Yesod to support basically any kind of logging library, using an associated type family for the logger representation.
I don't know whether or not the existence of
makeLogger
and the passing of the logger tomessageLoggerSource
still make sense - a better design might simply be to rip them out entirely - but these changes should at least be backwards-compatible from an API standpoint.Issues
This introduces a wedge between a Yesod site and the WAI server it runs on. The default logging middlewares that Yesod sets up will only accept
Logger
s, and since it's no longer possible to provide aLogger
from the site type, a new one has to be created just to log from the middleware. That's a change in semantics that might surprise users. Additionally, some parts of middleware logging (like the exception logging inwarp
) still go through the Yesod site logger instead.