Единственный правильный способ прокинуть логгер Что не так с LoggerAware* костылями:
• LoggerAwareInterface делает дыру в сервисе методом setLogger. Да и как контракт он абсолютно бесполезен.
• В LoggerAwareTrait свойство logger, что бы ни говорил phpdoc, имеет значение по умолчанию null и, соответственно, nullable тип. Значит его либо нужно всегда проверять if ($this->logger !== null), либо как в сниппете инициализировать в конструкторе пустым логгером, только уже не в качестве фоллбэка, а превентивно. В любом случае код получится более сложным и менее очевидным.
PSR-3 я также комментировал в среду на стриме про трейты: