Logger Untanglement

Details

Type: Improvement

Status:Resolved

Priority: Major

Resolution:
Done

Affects Version/s:
None

Fix Version/s:
None

Component/s:
None

Labels:

None

Description

I propose that we do a thorough examination of how we use loggers over the whole project. There are many instances of loggers being shared between classes that make troubleshooting difficult, and we can probably clean up some of the usage that has accumulated over numerous code moves and refactorings.

Because this has the potential to scope wildly out of control, I would like to break the work down into several subtasks.

Loggers should be declared all three of private static final when possible. This both helps avoid the situations described in later bullets, and might provide a very minor performance improvement.

Distinct classes should not use loggers from other classes, unless they are explicitly delegated to do so.

Subclasses should declare their own loggers instead of relying on loggers from parent classes.

Examine if forbidden-api or some other tool(s) can help maintain this, once we reach a desired state.

Each bullet might turn into one or more tasks, depending on how invasive individual changes become.