Как отформатировать данные Timestamp при использовании TraceOptions.Timestamp - PullRequest
2 голосов
/ 07 октября 2011

Как мне отформатировать данные метки времени, которые печатаются, когда вы устанавливаете TraceOutputOptions = TraceOptions.Timestamp?

Я получаю что-то вроде: Timestamp = 41329240725 (реальное значение, которое было записано в выходной текстовый файл)

РЕДАКТИРОВАНИЕ: Я хочу что-то вроде 10: 22: 34.32938.Как мне настроить TextWriterTraceListener для достижения этой цели?

Ответы [ 2 ]

2 голосов
/ 07 октября 2011

Вы действительно хотите записать время написания сообщения? Если это так, вы хотите использовать TraceOptions.DateTime. Обратите внимание, что согласно MSDN время записывается как UTC.

Если вам нужен больший контроль над форматом времени (в том числе если вы хотите, чтобы он был выражен не в формате UTC), то вам, вероятно, придется написать собственный настраиваемый TraceListener или найти тот, который будет делать то, что вы хотите .

Одним полезным дополнением для System.Diagnostics является Ukadc.Diagnostics . С его помощью вы можете легко добавить произвольное форматирование в ваши сообщения журнала (аналогично тому, что вы можете делать с log4net и NLog).

Вот некоторые другие ссылки на ответы, которые я давал в прошлом для регистрации вопросов, которые могут оказаться полезными:

Когда мне следует использовать Tracing vs Logger.NET, Enterprise Library, log4net или Ukadc.Diagnostics?

Когда мне нужно более одного TraceSource в коде?

0 голосов
/ 07 октября 2011

По данным этой страницы

http://msdn.microsoft.com/en-us/library/a10k7w6c.aspx

TraceOptions Timestamp возвращает количество тиков, поэтому для преобразования тиков во время вам необходимо:

DateTime date = new DateTime(41329240725);
string FormattedDate =  date.ToShortDateString();

однако 41329240725, кажется немного маленьким для тиков (надеюсь, это был только пример)

...