Важливість типів слідів слід вибирати не тому, де слід знаходиться в коді, а тому, що відстежуване повідомлення має більш-менш важливе значення. Приклад:
Простежте подію "Пуск" під час початку методу, який повинен представляти одну логічну операцію або конвеєр, а також рядкове подання значень параметрів, переданих методу.
Використовуйте тип запуску під час запуску логічної операції. Це не означає, що початковий слід повинен знаходитись на початку методу, а також не повинен означати, що метод повинен мати початковий слід.
Це, в більшості випадків, логічна операція дійсно розпочнеться на початку методу. В іншому випадку слід запитати себе, чи правильно відремонтовано код.
Параметри відстеження також можуть бути поганою ідеєю . Ви повинні подумати, що простежити, від випадку до випадку. Наприклад, дуже погано відстежувати параметри методу void Authenticate(string userName, string plainPassword)
.
Простежте подію "Інформація", вставляючи елемент у базу даних.
Це залежить. Деякі елементи повинні бути простежені, але не кожен.
- Наприклад, уявіть, що ви фактично вставляєте елемент журналу у свою базу даних. Ви б простежили журнали? А потім журнали слідів? А потім простежити реєстрацію сліду?
- Інший приклад: ви вставляєте конфіденційні дані. Для цього потрібен аудит. Оскільки ви перевіряли вставку, навіщо її відстежувати?
Простежте подію "Інформація" під час проходження того чи іншого шляху у важливому операторі if / else.
Знову ж таки, це залежить.
Простежте "критичну" або "помилку" в блоці вилову залежно від погоди, це помилка, яку можна виправити.
Дія, вжита після непоправної помилки, може бути більше, ніж простежити. Наприклад, на стороні сервера, ви хочете зберегти виняток у базі даних для подальшого аналізу. Також деякі винятки менш важливі, ніж інші, і не вимагають їх відстеження.
Простежте подію "Стоп", коли закінчуєте виконання методу.
Дивіться перший пункт.
будь ласка, уточнюйте, коли найкраще простежити типи подій у верболозі та попередженні
Багатослівний:
Дослідне слово використовується для того, щоб простежити, що потрібно простежити, коли щось піде не так. Це означає, що в більшості випадків ви відключите відслідковування багатослівних повідомлень, але іноді вам доведеться налагоджувати деякі частини коду, щоб зрозуміти, чому щось не виходить у кращому регістрі.
Зазвичай у вас є багато багатослівних повідомлень, які дозволяють вам дуже добре зрозуміти потік додатків. Це також означає, що ці повідомлення повинні бути відключені більшу частину часу, оскільки:
- інакше журнал буде рости дуже швидко,
- вони вам не потрібні більшість часу,
- вони можуть містити конфіденційні дані про потік додатків.
Подумайте про багатослівність як про інструмент, який ви повинні використовувати, коли у вас немає доступу до налагоджувача.
Увага:
Шлях типу попередження використовується, коли трапляється щось не так і важливе, але не є надто важливим, щоб трактуватись як помилку. Наприклад, низька оперативна пам'ять може надсилати попередження, але немає причин простежувати помилку, оскільки ваше додаток може продовжуватися, навіть якщо воно буде повільніше, ніж зазвичай.
Приклади:
Приклад 1: програма не відкрила файл, який користувач просив відкрити. Файл існує і не використовується, дозволи встановлені правильно, але щось блокує відкриття файлу. У цьому випадку ви простежите помилку , оскільки ваша програма не може керувати цією справою і продовжує працювати так, як очікував користувач (тобто фактично читає файл).
Приклад 2: після перевірки помилки в першому прикладі ви виявите, що помилка викликана тим, що шлях до файлу довший 259 символів. Таким чином, ви рефакторний код, щоб зловити PathTooLongException
. Коли в наступний раз користувач намагається відкрити той самий файл, у новій версії програми з'являється повідомлення, що пояснює, що файл занадто довгий і його потрібно перенести в іншу папку, щоб скоротити повний шлях, щоб відкрити цей файл у ця програма. Ви також відстежуєте повідомлення .
Приклад 3: Ваша програма провела двадцять секунд, відкриваючи та аналізуючи невеликий файл, тоді як для більшості файлів потрібно десять-сто мілісекунд, щоб відкрити та проаналізувати. Ви відстежуєте попередження відповідною інформацією: тип диска, де файл насправді є, файлова система, розмір файлу, точний витрачений час, час роботи комп'ютера тощо. Коли користувач скаржиться, що йому потрібно двадцять секунд, щоб відкрити файл, ви знайдете слід, щоб знайти, що відбувається. Ви виявляєте, наприклад, що завантаження файлів із мережевого спільного доступу займає стільки часу, коли комп'ютер тільки запустився. Ви пояснюєте користувачеві, що затримка пов’язана з мережею і не пов'язана з вашою заявою.
Приклад 4: відкритий файл відображається неправильно. Ви включаєте багатослівний слід, де ви дійсно бачите, як дані завантажуються з файлу та потім аналізуються, крок за кроком.