#269·logger

The design of the restriction position for "isLoggable" is unreasonable

Author: qlang122Created Dec 26, 2023Updated Dec 26, 2023

The problem of design thinking!

Logger.json() -> LoggerPrinter.json() (json format in here, Time-consuming) -> LoggerPrinter.d() -> LoggerPrinter.log()

Action code:

for (LogAdapter adapter : logAdapters) {
      if (adapter.isLoggable(priority, tag)) {
        adapter.log(priority, tag, message);
      }
}

Why is this design problematic?

Because many users actually do this:

Logger.addLogAdapter(object : AndroidLogAdapter(formatStrategy) {
      override fun isLoggable(priority: Int, tag: String?): Boolean {
            return BuildConfig.DEBUG
      }
})

And that's where the problem lies image