Какой лучший способ записи сообщений журнала отладки в файл? - PullRequest
1 голос
/ 27 октября 2011

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

Вот как я это делаю в настоящее время:

private static void Write(string message)
{
    Task.Factory.StartNew(() =>
    {
        try
        {
            lock (locker)
            {
                File.AppendAllText(DebugFilePath, message);
                InvokeLogWrittenEvent(message);
            }
        }
        catch
        {
        }
    });
}

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

1 Ответ

1 голос
/ 27 октября 2011

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

...