Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improvement proposal: Better Factory-support for regular (non-SelfAware, non-Structured) Logger #878

Open
MartinHH opened this issue Dec 23, 2024 · 0 comments

Comments

@MartinHH
Copy link

I noticed some libraries, e.g. http4s, use LoggerFactory as context bound a lot even though all they need is a factory for a Logger, not for a SelfAwareStructuredLogger.

This means users of such libraries are force to provide instances of SelfAwareStructuredLogger even though the extra methods of SelfAwareLogger and StructuredLogger are not used at all. That makes it unneccessarily hard to use other logging frameworks than those supported by log4cats directly.

I guess the reasons why libraries use LoggerFactory as context bound when they only need a factory for a simple Logger are:

  • LoggerFactoryGen (which would allow to return a Loggerinstead of a SelfAwareStructuredLogger) has a less inviting name than LoggerFactory
  • a bunch of convenience stuff that is defined for LoggerFactory (e.g. mapK and implicit conversion like optionTFactory, eitherTFactory, ...) is not defined for LoggerFactoryGen

The "less inviting name" part probably cannot be changed without breaking everyone's code, so my proposal is to address the other reason and provide as much of the convenience stuff that is available for LoggerFactory for LoggerFactoryGen as possible.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant