2015-09-28 32 views
5

Ho notato che ci sono almeno due modi per scrivere i registri in Umbraco. Un modo è quello di utilizzare la classe LogHelper e l'altro è quello di utilizzare direttamente i metodi dell'istanza ottenuta con il metodo log4net.LogManager.GetLogger. Inutile dire che LogHelper utilizza anche log4net stesso.Qual è la migliore pratica per l'accesso a Umbraco?

Ho aggiunto un appender di log personalizzato, impostato la destinazione del file dell'appender come file personalizzato (diverso da quello predefinito) e provato in entrambi i modi, e ho notato che i risultati nel log sono più o meno gli stessi. L'ingresso di LogHelper assomiglia a questo:

ERRORE ProjectName.Controllers.Backoffice.DataController - [P4876/T1/D2] Test di

mentre la voce che log4net fa assomiglia a questo:

ERRORE ProjectName.Controllers.Backoffice.DataController - test

Tuttavia, quando ho cercato post su accedendo Umbraco, ho trovato spesso esempi di utilizzo di log4net direttamente, piuttosto che usare la classe LogHelper fornita da Umbraco CMS.

Quindi, in pratica, ci sono buone ragioni per cui gli sviluppatori dovrebbero usare un modo piuttosto che l'altro, o è semplicemente questione di preferenza usare i metodi della libreria invece di usare la classe helper fornita dal CMS (o viceversa - helper prima della biblioteca)?

risposta

13

LogHelper è un wrapper convenienza per la registrazione - parte del quadro di registrazione con l'interfaccia Umbraco.Core.Logging.ILogger al suo nucleo. Di default viene utilizzata l'implementazione log4net, ma esiste anche una classe interna DebugDiagnosticsLogger che trasmette tutto tramite Debug.WriteLine.

In genere, se si sta sviluppando utilizzando le librerie Umbraco, quindi LogHelper è la strada da percorrere.

+0

Grande, grazie. LogHelper mi è sembrato una scelta migliore al primo sguardo, volevo solo assicurarmi che non mi sfuggisse qualcosa di ovvio - come un vantaggio nell'usare una soluzione rispetto all'altra –

+0

Sto usando l'helper del registro ma non riesco a sembrare per fare in modo che inserisca tutti i registri nel file di registro di umbraco, c'è qualcosa che sto facendo male? Devo configurare qualcosa all'avvio? –

+0

Generalmente no; forse potresti descrivere come lo stai usando; e dove stai cercando le voci? Inoltre, a che livello stai registrando? –

3

LogHelper è probabilmente creato in modo che gli sviluppatori non debbano preoccuparsi di quale specifico provider di registri viene utilizzato all'interno di Umbraco (log4net, Elmah, qualunque sia). Quindi in teoria potrebbe aggiungere un piccolo overhead, ma è più facile da usare.

Io non credo che ci sia un vero e proprio "best practice", ma mi piacerebbe utilizzare LogHelper :-)

+1

Sì, anche quelli erano i miei pensieri, ma non ero sicuro se mi mancasse qualcosa. Grazie –

+1

Nessun problema :-) Sembra che ci sia un LoggingService sulla strada in 7.3.0, a proposito. –