Un modo per mantenere il BL disaccoppiato dalle varie librerie di logging è creare un'interfaccia di logging in una delle tue librerie principali, a cui farà riferimento la BL. È quindi possibile avere le implementazioni concrete in un'altra libreria e iniettarle nel BL. In questo modo il tuo BL rimarrà ignaro della tua libreria di registrazione preferita.
Per quanto riguarda l'accesso al modello di business, dipende molto da ciò che si desidera registrare. Se si tratta solo di eccezioni, puoi lasciarle in bolla e catturarle / registrarle nei livelli superiori. Se si desidera registrare più di eccezioni, è necessario aggiungere il codice di registrazione all'interno delle classi BL, che non è poi così male. Dopotutto, il logging è una preoccupazione trasversale e devi distribuirlo su tutti i livelli della tua applicazione.
Per farla breve: no, non è una cattiva pratica.