2015-09-28 44 views
5

Zauważyłem, że istnieją co najmniej dwa sposoby zapisywania dzienników w Umbraco. Jednym ze sposobów jest użycie klasy LogHelper, a drugą jest bezpośrednie wykorzystanie metod instancji uzyskanych za pomocą metody log4net.LogManager.GetLogger. Nie trzeba dodawać, że LogHelper również używa samego log4net.Jaka jest najlepsza praktyka przy logowaniu do Umbraco?

Dodałem niestandardowego aplikatora rejestru, ustaw miejsce docelowe pliku aplikacji jako niestandardowy plik (inny niż domyślny) i próbowałem w obie strony, i zauważyłem, że wyniki w dzienniku są mniej więcej takie same. Wpis LogHelper wygląda tak:

ERROR ProjectName.Controllers.Backoffice.DataController - [P4876/T1/D2] Badanie

natomiast pozycja sprawia, że ​​log4net wygląda następująco:

ERROR ProjectName.Controllers.Backoffice.DataController - Test

Jednak, gdy szukałem wpisów na temat logowania Umbraco, często znajdowałem przykłady użycia log4net bezpośrednio, zamiast używać klasy LogHelper dostarczonej przez Umbraco CMS.

Czy istnieją uzasadnione powody, dla których programiści powinni używać jednego sposobu zamiast drugiego, czy jest to po prostu kwestia preferencji używania metod biblioteki zamiast korzystania z klasy pomocniczej dostarczonej przez CMS (lub odwrotnie? - pomocnik przed biblioteką)?

Odpowiedz

13

LogHelper jest opakowaniem wygoda dla rejestrowania - część ramy rejestrowania z interfejsem Umbraco.Core.Logging.ILogger co to jest rdzeń. Domyślnie używana jest implementacja log4net, ale istnieje również klasa wewnętrzna DebugDiagnosticsLogger, która wyprowadza wszystko za pośrednictwem Debug.WriteLine.

Ogólnie rzecz biorąc, jeśli pracujesz przy użyciu bibliotek Umbraco, to jest to droga, którą można przejść pod numer LogHelper.

+0

Świetnie, dzięki. LogHelper wydawał mi się lepszym wyborem na pierwszy rzut oka, chciałem tylko upewnić się, że nie brakuje mi czegoś oczywistego - jak korzyść z używania jednego rozwiązania nad drugim –

+0

Używam pomocnika do dziennika, ale nie mogę się wydawać aby umieścić go w dzienniku w pliku umbraco, czy jest coś, co robię źle? Czy muszę wszystko konfigurować przy starcie? –

+0

Generalnie nie; może mógłbyś opisać, jak go używasz; i gdzie szukasz wpisów? Na jakim poziomie logujesz się? –

3

LogHelper jest prawdopodobnie stworzony tak, aby deweloperzy nie musieli się martwić o to, który dostawca logów jest używany wewnątrz Umbraco (log4net, Elmah, cokolwiek). Więc teoretycznie może dodać niewielki narzut, ale jest łatwiejszy w użyciu.

Nie sądzę, istnieje rzeczywiste „najlepszych praktyk”, ale użyję LogHelper :-)

+1

Tak, to były również moje przemyślenia, ale nie byłem pewien, czy czegoś brakuje. Dzięki –

+1

Nie ma problemu :-) Wygląda na to, że jest LoggingService w drodze w 7.3.0, nawiasem mówiąc. –