Кад пишете рачунарски код у Ц #, добра је идеја укључити код за евидентирање. На тај начин, кад нешто пође по злу, знате одакле почети. Јава свет ово ради годинама. У ту сврху можете користити лог4нет. Дио је Апацхе лог4ј 2, популарног оквира за евидентирање отвореног кода.
Ово није једини .НЕТ оквир за евидентирање; има их много. Међутим Апацхе име је поуздано, а оригинални Јава систем за вођење евиденције постоји више од 15 година.
Зашто користити Лог4нет Логгинг Фрамеворк?
Када се апликација или сервер сруше, ви се питате зашто. Да ли је у питању био хардверски квар, малваре, можда напад одбијене услуге или нека необична комбинација кључева која успева заобићи све провере вашег кода? Једноставно не знаш.
Морате открити зашто је дошло до пада, тако да се може исправити. Ако је омогућено евидентирање, можда ћете моћи да видите зашто се то догодило.
Почетак
Преузмите датотеку лог4нет са веб локације Апацхе лог4нет. Провјерите интегритет преузетих датотека помоћу ПГП потписа или МД5 контролних вриједности. Контролни збројеви нису тако јаки показатељи као ПГП потпис.
Коришћење Лог4нет-а
Лог4нет подржава седам нивоа евидентирања од свих до свих у све већем приоритету. Су:
- ВАН
- ФАТАЛ
- ГРЕШКА
- УПОЗОРЕЊЕ
- ИНФО
- ДЕБУГ
- СВЕ
Виши нивои укључују све ниже. Када отклањате грешке, користите ДЕБУГ показује све, али на продукцији ће вас можда занимати само ФАТАЛ. Овај избор се може извршити на нивоу компоненте програмско или у КСМЛ датотеци Цонфиг.
Сјечачи и додаци
За флексибилност, лог4нет користи логере, прилоге и изгледа. Логгер је објект који контролира евидентирање и представља имплементацију ИЛог интерфејса, који специфицира пет логичких метода: исДебугЕнаблед, ИсИнфоЕнаблед, ИсВарнЕнаблед, ИсЕррорЕнаблед и ИсФаталЕнаблед. Такође одређује пет метода - Дебуг, Инфо, Варн, Еррор иФатал - заједно са преоптерећењима и петом форматираном верзијом стрингова. Комплетан ИЛог интерфејс можете видети у мрежном приручнику за лог4нет.
Логерима се додељује један од нивоа, али не СВИ или ОФФ, само осталих пет.
Додаци контролишу куда иде сеча. Може се налазити у бази података, у меморијском међуспремнику, у конзоли, у удаљени хост, у текстуалну датотеку са ваљаним записима, у Виндовс Дневник догађаја или чак у е-пошту путем СМТП-а. Има 22 прилога и могу се комбиновати тако да имате пуно избора. Додаци се додају (одатле и име) логеру.
Додаци филтрирају догађаје подударањем подскупова, нивоа догађаја, распона нивоа и почетка имена дневника.
Изгледи
Коначно, постоји седам распореда који се могу повезати са Апендером. Они контролирају начин на који се евидентира порука догађаја и могу укључивати текст изузетка, распоред временских ознака и КСМЛ елементи.
Конфигурација помоћу КСМЛ-а
Иако се конфигурација може обавити програмски, она се може обавити и са КСМЛ Цонфиг датотекама. Зашто бисте радије конфигурисали датотеке преко промене кода? Једноставно, далеко је лакше имати особу за подршку да изврши промену конфигурационе датотеке него што је потребно да програмер промени код, тестира и поново постави нову верзију. Дакле, конфигурационе датотеке су пут којим треба ићи. Најједноставнији могући пут је додавање Апп.цонфиг вашем пројекту, као што је приказано у доњем примеру:
Онлине документација лог4нет објашњава сва поља конфигурационих датотека. Након што сте поставили Апп.цонфиг, додајте користећи лог4нет и ову линију:
[монтажа: лог4нет. Цонфиг. КсмлЦонфигуратор (Ватцх = труе)]
Поред тога, стварни логер мора бити дохваћен позивом на ЛогМанагер. ГетЛоггер (...). ГетЛоггер се обично позива помоћу типеоф (класе) у којем се користи, али овај позив функције такође доноси и сљедеће:
Систем. Рефлексија. МетходБасе. ГетЦуррентМетход (). ДецларингТипе
Овај пример приказује обоје са једним коментарисаним, тако да можете да бирате.
коришћење лог4нет;
[монтажа: лог4нет. Цонфиг. КсмлЦонфигуратор (Ватцх = труе)]
намеспаце гвмаке
{
разредни програм
{
приватни статички читање само ИЛог лог = ЛогМанагер. ГетЛоггер (Систем. Рефлексија. МетходБасе. ГетЦуррентМетход
() .ДецларингТипе);
// приватни статички читање само ИЛог лог = ЛогМанагер. ГетЛоггер (типеоф (Програм));
статиц воид Маин (стринг [] аргс)
{
Пријава. Дебуг ("Апликација старт");
}
}
}