В моей организации мы собрали некоторые правила / правила ведения журнала, которые я хотел бы знать, можете ли вы добавить или прокомментировать.
Мы используем Java, но вы можете в целом прокомментировать логин - правила и советы
Используйте правильный уровень регистрации
- ОШИБКА: что-то пошло не так и нужно немедленно исправить
- ВНИМАНИЕ: Процесс может продолжаться без исправления. Приложение должно терпеть этот уровень, но предупреждение всегда должно быть расследовано.
- ИНФОРМАЦИЯ: Информация о том, что важный процесс завершен
- DEBUG. Используется только во время разработки
Убедитесь, что вы знаете, что вы регистрируете.
Избегайте, чтобы регистрация влияла на поведение приложения
Функция ведения журнала должна заключаться в записи сообщений в журнал.
- Сообщения журнала должны быть описательными, четкими, краткими и краткими.
При поиске и устранении неисправностей не часто используются бессмысленные сообщения.
- Поместите правильные свойства в log4j
Поместите в это правильный метод, и класс написан автоматически.
Пример:
Datedfile -web
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, если используете try-catch в обработчике и ведение журнала в соответствии с приведенной выше моделью:
В нашем проекте мы используем этот шаблон преобразования, с помощью которого имена методов и классов записываются автоматически. Здесь мы используем два разных патента для консоли и для datedfileappender:
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 - всего лишь реализация того, как это обосновано.