Как да влезете в C # с Log4net

click fraud protection

Когато пишете компютърен код в C #, добра идея е да включите лог код. По този начин, когато нещо се обърка, вие знаете откъде да започнете да търсите. Светът на Java прави това от години. Можете да използвате log4net за тази цел. Той е част от Apache log4j 2, популярна рамка за отворен код.

Това не е единствената .NET рамка за регистрация; има много. както и да е Apache името е надеждно и оригиналната рамка за регистриране на Java съществува от повече от 15 години.

Защо да използвате Log4net Logging Framework?

Когато приложение или сървър се сринат, вие се оставяте да се чудите защо. Беше ли хардуерна повреда, злонамерен софтуер, може би атака за отказ на услуга или някаква странна комбинация от ключове, която успява да заобиколи всички проверки на вашия код? Просто не знаеш.

Трябва да разберете защо е станала срив, за да може да бъде коригирана. При включена регистрация може да можете да разберете защо се е случило.

Приготвяме се да започнем

Изтеглете файла log4net от уебсайта на Apache log4net. Проверете целостта на изтеглените файлове с помощта на PGP подпис или MD5 контролни суми. Контролните суми не са толкова силни показатели, колкото подписът на PGP.

instagram viewer

Използване на Log4net

Log4net поддържа седем нива на регистрация от никое към всички в увеличаване на приоритета. Това са:

  1. OFF
  2. ФАТАЛНО
  3. ГРЕШКА
  4. WARN
  5. INFO
  6. DEBUG
  7. ВСИЧКО

По-високите нива включват всички по-ниски. При отстраняване на грешки, използвайки DEBUG показва всичко, но при производството може да се интересувате само от FATAL. Този избор може да бъде направен на ниво компонент програмно или във файл XML Config.

Дървачи и приспособления

За гъвкавост log4net използва дърводобивачи, приложения и оформления. Логърът е обект, който контролира регистрирането и е реализация на интерфейса ILog, който указва пет булеви метода: isDebugEnabled, IsInfoEnabled, IsWarnEnabled, IsErrorEnabled и IsFatalEnabled. Той също така определя петте метода - Debug, Info, Warn, Error иFatal - заедно с претоварвания и пет форматирани версии на низове. Можете да видите пълния интерфейс ILog в онлайн ръководството на log4net.

Регистриращите се назначават едно от нивата, но не и ВСИЧКО или ИЗКЛЮЧЕНО, само останалите пет.

Допълненията контролират къде отива сечът. Тя може да бъде в база данни, в буфер в паметта, в конзолата, в отдалечен хост, в текстов файл с подвижни дневници, дневник на събитията на Windows или дори да изпратите имейл чрез SMTP. Има общо 22 кандила и те могат да се комбинират, така че да имате много възможности за избор. Допълненията се добавят (оттук и името) към дърводобив.

Допълненията филтрират събития, като съвпадат подстраници, ниво на събитието, диапазон от нива и начало на името на дърворода.

Формати

И накрая, има седем оформления, които могат да бъдат свързани с апел. Те контролират как се записва съобщението на събитието и могат да включват текст за изключения, оформления на времеви марки и XML елементи.

Конфигуриране с XML

Въпреки че конфигурирането може да се извърши програмно, то може да се направи и с XML Config файлове. Защо предпочитате конфигурационните файлове пред промените в кода? Просто, много по-лесно е човек с поддръжка да направи промяна в конфигурационния файл, отколкото да накарате програмист да промени кода, да тества и преразпределя нова версия. Така че конфигуриращите файлове са начинът да отида. Най-простият възможен път е да добавите App.config вашия проект, както е показано в примера по-долу:

1.0UTF-8





















Онлайн документацията на log4net обяснява всички конфигурационни файлови полета. След като настроите App.config, добавете с помощта на log4net и този ред:

[монтаж: log4net. Config. XmlConfigurator (Watch = true)]

Плюс това действителният дърводобив трябва да бъде извлечен с повикване към LogManager. GetLogger (...). GetLogger обикновено се извиква с typeof (клас), в който се използва, но този разговор на функция също извлича, че:

Система. Отражение. MethodBase. GetCurrentMethod (). DeclaringType

Този пример показва и двете с един коментиран, така че можете да изберете.

използване на log4net;
[монтаж: log4net. Config. XmlConfigurator (Watch = true)]
пространство на имена gvmake
{
клас програма
{
частен статичен само за четене ILog log = LogManager. GetLogger (Система. Отражение. MethodBase. GetCurrentMethod
() .DeclaringType);
// частен статичен само за четене ILog log = LogManager. GetLogger (typeof (програма));
static void Main (string [] аргументи)
{
влезте. Debug ("Стартиране на приложението");
}
}
}

instagram story viewer