Когда использовать разные уровни журнала

Да, это возможно, хотя и громоздко. Вам нужно будет напечатать / отозвать HTML-страницу страницы в теле вашей страницы, а затем применить функцию изменения правила CSS. Используя те же примеры, приведенные выше, вы, по существу, будете использовать метод синтаксического анализа для нахождения div на странице, а затем применить к нему CSS и затем перепечатать / отозвать его конечному пользователю. Мне это не нужно, поэтому я не хочу кодировать эту функцию в каждый элемент в CSS другой веб-страницы только для aphtply.

Ссылки:

425
задан Peter Mortensen 17 October 2017 в 08:14
поделиться

12 ответов

Я обычно придерживаюсь следующего соглашения:

  • Trace - Только когда я «отслеживаю» код и пытается найти одну часть функции конкретно.
  • Отладка - Информация, которая диагностически полезна не только разработчикам (ИТ, системным администраторам и т. Д.).
  • Информация - Обычно полезная информация для регистрации (запуск / остановка службы, предположения конфигурации и т. Д.). Информация Я хочу всегда иметь под рукой, но обычно не забочусь о ней при нормальных обстоятельствах. Это уровень моей нестандартной конфигурации.
  • Предупредить - все, что потенциально может вызвать странности в работе приложения, но от которых я автоматически восстанавливаюсь. (Например, переключение с основного на резервный сервер, повторная попытка выполнения операции, отсутствие дополнительных данных и т. Д.)
  • Ошибка - Любая ошибка, фатальная для операции , но не для службы или приложение (не удается открыть нужный файл, отсутствуют данные и т. д.). Эти ошибки заставят пользователя (администратора или прямого пользователя) вмешаться. Обычно они зарезервированы (в моих приложениях) на случай неправильных строк подключения, отсутствующих служб и т. Д.
  • Fatal - Любая ошибка, вызывающая завершение работы службы или приложения для предотвращения потери данных (или дальнейшей потери данных). Я оставляю их только на случай самых серьезных ошибок и ситуаций, когда данные гарантированно могут быть повреждены или утеряны.
673
ответ дан 22 November 2019 в 22:53
поделиться
[

] Если вы можете восстановиться после проблемы, то это предупреждение. Если это препятствует продолжению выполнения, то это ошибка. [

]
24
ответ дан 22 November 2019 в 22:53
поделиться
[

] Хотите, чтобы сообщение вытащило системного администратора из постели посреди ночи?[

] [
    ] [
  • ]да -> ошибка[
  • ] [
  • ]нет -> предупреждение[
  • ] [
]
293
ответ дан 22 November 2019 в 22:53
поделиться

Я предлагаю использовать только три уровня

  1. Фатальный - Который повредил бы приложение.
  2. Информация - Информация
  3. Отладка - менее важная информация
0
ответ дан 22 November 2019 в 22:53
поделиться
[

]Я собирал системы до этого, используя следующее:[

] [
    ] [
  1. ]ERROR - означает, что что-то серьезно не так и что конкретный поток/процесс/последовательность не может продолжаться дальше. Требуется некоторое вмешательство пользователя/администратора[
  2. ] [
  3. ]WARNING - что-то не так, но процесс может продолжаться так же, как и раньше (например, одна работа в наборе из 100 завершилась неудачно, но остальное можно обработать)[
  4. ] [
] [

]В системах, которые я собирал, администраторы были проинструктированы реагировать на ERROR. С другой стороны, мы следили за ПРЕДУПРЕЖДЕНИЯМИ и определяли для каждого случая, нужны ли какие-либо системные изменения, переконфигурации и т.д.[

].
1
ответ дан 22 November 2019 в 22:53
поделиться
[

]Предупреждения, от которых вы можете восстановиться. Ошибки, которые вы не можете исправить. Это моя эвристика, у других могут быть другие идеи.[

] [

]Например, допустим, вы вводите/импортируете имя [] "Angela Müller"[] в ваше приложение (обратите внимание на умляут над []u[]). Ваш код/база данных может быть только английским (хотя, вероятно, []не должен быть[] в этот день и возраст) и поэтому может предупредить, что все "необычные" символы были преобразованы в обычные английские символы.[

] [

]И наоборот, при попытке записать эту информацию в базу данных и получить обратно сообщение об отказе от сети в течение 60 секунд подряд. Это скорее ошибка, чем предупреждение.[

]
17
ответ дан 22 November 2019 в 22:53
поделиться
[

] Как говорили другие, ошибки - это проблемы, предупреждения - это потенциальные проблемы.[

] [

] В разработке я часто использую предупреждения, в которых могу поместить эквивалент ошибки утверждения, но приложение может продолжать работать; это позволяет мне узнать, случается ли когда-нибудь подобный случай на самом деле, или это мое воображение.[

] [

]Но да, это сводится к аспектам восстанавливаемости и актуальности. Если вы можете восстановить, это, вероятно, предупреждение; если это приводит к тому, что что-то на самом деле выходит из строя, то это ошибка.[

]
5
ответ дан 22 November 2019 в 22:53
поделиться

Добрый день,

Как следствие этого вопроса, поделитесь своими интерпретациями уровней журнала и убедитесь, что все люди в проекте едины в своей интерпретации уровней.

Больно видеть огромное количество сообщений журнала, в которых серьезность и выбранные уровни журнала несовместимы.

Приведите примеры, если возможно, различных уровней ведения журнала. И будьте последовательны в информации, чтобы войти в сообщение.

HTH

2
ответ дан 22 November 2019 в 22:53
поделиться

Я полностью согласен с остальными, и думаю, что GrayWizardx сказал это лучше всего.

Все, что я могу добавить, это то, что эти уровни в целом соответствуют их определениям в словаре, так что это не может быть так сложно. Если сомневаешься, относись к этому как к головоломке. Для вашего конкретного проекта подумайте обо всём, что вы захотите записать в журнал.

Вы можете понять, что может быть фатальным? Ты ведь знаешь, что значит "фатально", не так ли? Итак, какие пункты вашего списка фатальны.

Ладно, это фатально, теперь давайте посмотрим на ошибки... прополоскаем и повторим.

Ниже "фатально", а может быть "Ошибка", я бы предположил, что больше информации всегда лучше, чем меньше, так что ошибитесь "вверх". Не уверен, Инфо или Предупреждение? Тогда сделайте это предупреждением.

Я думаю, что фатальная и ошибочная информация должна быть понятна всем нам. Остальные могут быть более размытыми, но, возможно, менее жизненно важно их исправить.

Вот несколько примеров:

Fatal - не может выделить память, базу данных и т.д. - не может продолжаться.

Error - нет ответа на сообщение, транзакция прервана, не может сохранить файл и т.п.

Предупреждение - распределение ресурсов достигает X% (скажем 80%) - это признак того, что вы можете захотеть переразмерять ваши.

Информация - пользователь вошел/вышел из системы, новая транзакция, файл создан, новое поле d/b или поле удалено.

Debug - дамп внутренней структуры данных, Anything Trace level с именем файла и номером строки.
Trace - действие выполнено/не выполнено, d/b обновлено.

3
ответ дан 22 November 2019 в 22:53
поделиться

Я всегда думал о том, чтобы предупредить первый уровень журнала, что наверняка означает наличие проблемы (например, возможно, конфигурационный файл не там, где должен быть, и нам придется запускаться с настройками по умолчанию). Ошибка подразумевает, для меня, что-то, что означает, что главная цель программного обеспечения теперь невозможна, и мы попытаемся закрыться чисто.

3
ответ дан 22 November 2019 в 22:53
поделиться

Кстати, я большой поклонник захвата всего и фильтрации информации позже.

Что бы случилось, если бы вы перехватывали на уровне предупреждений и хотели получить некоторую отладочную информацию, связанную с предупреждением, но не смогли бы воссоздать предупреждение?

Захватите все и отфильтруйте позже!

Это справедливо даже для встраиваемого программного обеспечения, если только вы не обнаружите, что ваш процессор не может продолжать работу, и в этом случае вы, возможно, захотите перепроектировать трассировку, чтобы сделать ее более эффективной, или если трассировка мешает синхронизации (вы можете рассмотреть возможность отладки на более мощном процессоре, но это откроет вам целую банку червей).

Захватите все и отфильтруйте позже!!!

(btw, захват всего также хорош, потому что позволяет разрабатывать утилиты, позволяющие делать больше, чем просто показывать отладочную трассу (я рисую диаграммы последовательности сообщений из своей, и гистограммы использования памяти. Это также дает вам основу для сравнения, если что-то пойдет не так в будущем (храните все журналы, независимо от того, пройдут они или нет, и обязательно включайте номер сборки в лог-файл).

1
ответ дан 22 November 2019 в 22:53
поделиться

Ошибка - это то, что неправильно, просто неправильно, ее нельзя обойти, ее нужно исправить.

Предупреждение - это признак того, что может быть неправильным, но также может и не быть.

Сказав это, я не могу привести хороший пример предупреждения, которое также не является ошибкой. Я имею в виду, что если вы перейдете к проблеме записи предупреждения в журнал, вы можете также исправить основную проблему.

Однако, такие вещи, как "sql execution takes too long" могут быть предупреждением, в то время как "sql execution deadlocks" - это ошибка, так что, возможно, в конце концов, есть некоторые случаи.

3
ответ дан 22 November 2019 в 22:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: