У моїй організації ми зібрали кілька правил / рекомендацій щодо ведення журналів, які я хотів би знати, чи можете ви додати чи коментувати.
Ми використовуємо Java, але ви можете взагалі коментувати вхід - правила та поради
Використовуйте правильний рівень реєстрації
- ПОМИЛКА: Щось пішло не так і потрібно негайно виправити
- ПОПЕРЕДЖЕННЯ. Процес може тривати без виправлення. Програма повинна терпіти цей рівень, але попередження завжди має бути вивчене.
- ІНФОРМАЦІЯ: Інформація про важливий процес закінчена
- ВІДЛАГОДЖУВАТИ. Використовується лише під час розробки
Переконайтеся, що ви знаєте, що ви реєструєте.
Уникайте, щоб реєстрація впливала на поведінку програми
Функцією ведення журналу повинно бути записування повідомлень у журнал.
- Повідомлення журналу повинні бути описовими, чіткими, короткими та стислими.
Немало використання дурницького повідомлення при усуненні несправностей.
- Покладіть потрібні властивості в log4j
Введіть, що правильний метод і клас записуються автоматично.
Приклад:
Датированний файл - веб
log4j.rootLogger=ERROR, DATEDFILE
log4j.logger.org.springframework=INFO
log4j.logger.waffle=ERROR
log4j.logger.se.prv=INFO
log4j.logger.se.prv.common.mvc=INFO
log4j.logger.se.prv.omklassning=DEBUG
log4j.appender.DATEDFILE=biz.minaret.log4j.DatedFileAppender
log4j.appender.DATEDFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.DATEDFILE.layout.ConversionPattern=%d{HH:mm:ss,SSS} %-5p [%C{1}.%M] - %m%n
log4j.appender.DATEDFILE.Prefix=omklassning.
log4j.appender.DATEDFILE.Suffix=.log
log4j.appender.DATEDFILE.Directory=//localhost/WebSphereLog/omklassning/
- Значення журналу.
Будь ласка, введіть значення програми.
- Префікс журналу.
Вкажіть, з якої частини заявки йдеться про те, що журнал записується, бажано, за допомогою чогось узгодженого з префіксом проекту, наприклад PANDORA_DB
- Кількість тексту.
Будьте обережні, щоб не було занадто багато тексту для реєстрації. Це може вплинути на ефективність програми.
- Формат реєстрації:
-Існує декілька варіантів і методів, що використовуються з log4j, але ми хотіли б, щоб увійти за винятками, було впорядковано наступний формат:
logger.error("PANDORA_DB2: Fel vid hämtning av frist i
TP210_RAPPORTFRIST", e);
У наведеному вище прикладі передбачається, що ми встановили властивості log4j так, що він автоматично записує клас та метод.
Завжди використовуйте реєстратор, а не таке:
System.out.println(), System.err.println(), e.printStackTrace()
Якщо веб-додаток використовує наш фреймворк, ви можете отримати дуже детальну інформацію про помилки від EJB, якщо використовуєте спробу лову в обробнику та ведення журналу відповідно до наведеної вище моделі:
У нашому проекті ми використовуємо цю схему перетворення, за допомогою якої імена методів та класів виписуються автоматично. Тут ми використовуємо два різних патента для консолі та для дати fileappender:
log4j.appender.CONSOLE.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.appender.DATEDFILE.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
І в наведених вище прикладах метод і клас будуть виписані. У номері рядка консолі також буде написано наш.
toString()
Будь ласка, майте toString()
для кожного об'єкта. EX:
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(" DwfInformation [ ");
sb.append("cc: ").append(cc);
sb.append("pn: ").append(pn);
sb.append("kc: ").append(kc);
sb.append("numberOfPages: ").append(numberOfPages);
sb.append("publicationDate: ").append(publicationDate);
sb.append("version: ").append(version);
sb.append(" ]");
return sb.toString();
}
замість спеціального методу, який робить ці результати
public void printAll()
{
logger.info("inbet: " + getInbetInput());
logger.info("betdat: " + betdat);
logger.info("betid: " + betid);
logger.info("send: " + send);
logger.info("appr: " + appr);
logger.info("rereg: " + rereg);
logger.info("NY: " + ny);
logger.info("CNT: " + cnt);
}
То чи є щось, що ви можете додати, коментувати або вважати сумнівним за допомогою цих способів використання журналу? Не соромтеся відповідати чи коментувати, навіть якщо це не пов’язано з Java, Java та log4j - це лише реалізація того, як це аргументовано.