Core: Fix location information for loggers

This change corrects the location information gathered by the loggers so that when printing class name, method name, and line numbers in the log pattern, the information from the class calling the logger is used rather than a location within the logger itself.

Closes #5130
Actually if I remove the else it errors saying lALogger may not have been initialised because its a final field and needs an explicitly assigned value in the constructor