Что записать в файл журнала?

Вы пытались прикрепить w3wp.exe в вашем C# application? вы можете открыть C# application и убедиться, что выходом из этого приложения является DLL, на который есть ссылка, и поставить точку останова на метод, который вы хотите отлаживать, а при присоединении debugger сам output window может сказать независимо от того, загружены ли права symbols или нет, если написано, что symbols загружены, то breakpoint попадет.

Попробуйте, это должно сработать, как я сталкивался с этим ранее.

Удачного кодирования ...

11
задан Svante 13 May 2009 в 23:33
поделиться

7 ответов

Вот несколько предложений по содержанию:

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

Лучшие практики для реализации:

  • Поместить мьютекс вокруг метода записи, чтобы вы могли быть уверены, что каждая запись безопасна для потока и будет иметь смысл.
  • Отправлять по 1 сообщению за раз в файл журнала и каждый раз указывать тип сообщения журнала. Затем вы можете указать, какой тип записи вы хотите использовать при запуске программы.
  • Не используйте буферизацию для файла или часто выполняйте сброс в случае сбоя программы.

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

9
ответ дан 3 December 2019 в 03:05
поделиться

Это довольно приятно и уже реализовано.

Читать это: http://docs.python.org/library/logging.html


Редактировать

" легко разбирать, читать ", как правило, противоречивые черты. Английский - легко читаемый, трудно разобрать. XML - легко разбирать, трудно читать. Не существует такого формата, который бы легко читался и анализировался. Некоторые форматы журналов «не ужасны для чтения и не могут быть проанализированы».

Некоторые люди создают несколько обработчиков, так что один журнал имеет несколько форматов: сводка для чтения людьми и версия XML для автоматического анализа.

18
ответ дан 3 December 2019 в 03:05
поделиться

Поскольку вы пометили свой вопрос Python, я отсылаю вас к этому вопросу . Что касается содержания, предложение Брайана это хорошо. Однако не забудьте добавить имя программы, если вы используете общий журнал.

Важная вещь в файле журнала - это «возможность распознавания». Попытайтесь предоставить всю вашу информацию в одной строке с правильными строковыми идентификаторами, которые являются уникальными (также в основах) для определенного условия. Что касается отметки времени, используйте стандарт ISO-8601, который хорошо сортируется.

1
ответ дан 3 December 2019 в 03:05
поделиться

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

1
ответ дан 3 December 2019 в 03:05
поделиться

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

Посмотрите log4py - Python-версия log4j, я думаю, есть несколько реализаций для Python там.

1
ответ дан 3 December 2019 в 03:05
поделиться

timeStamp т.е. DateTime ГГГГ / ММ / ДД: ЧЧ: мм: сс: мс пользователь ID потока Имя функции Сообщение / сообщение об ошибке / сообщение об успехе / трассировка функции

Имеется это в формате XML, и вы можете легко написать для него анализатор.

<log>
  <logEntry DebugLevel="0|1|2|3|4|5....">
    <TimeStamp format="YYYY/MM/DD:HH:mm:ss:ms" value="2009/04/22:14:12:33:120" />
    <ThreadId value="" />
    <FunctionName value="" />
    <Message type="Error|Success|Failure|Status|Trace">
      Your message goes here
    </Message> 
  </logEntry>
</log>
-1
ответ дан 3 December 2019 в 03:05
поделиться

Библиотека журнала Python - безопасна для однопроводов.

0
ответ дан 3 December 2019 в 03:05
поделиться
Другие вопросы по тегам:

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