2009-07-10 3 views
4

Я ищу класс .net, чтобы иметь дело с протоколированием различной информации в файл. Регистратор должен иметь временные метки, категории для зарегистрированных данных (чтобы различать достоверность и ошибки), уровни серьезности ошибок, чтобы иметь возможность разделить файл журнала после того, как он превышает определенный размер.Файловый регистратор в C#

ответ

9

Enterprise Library Законодательный блок регистрации.

+0

Сердечная рекомендация для корпоративной библиотеки. – Randolpho

11

Я предлагаю вам использовать открытый источник log4net

1

Как проницаемые плакаты предложили, я бы сказал, посмотрите в Log4Net - это похоже на Log4J и позволяет много функциональных возможностей ...

Я хотел бы предложить чтение: http://logging.apache.org/log4net/release/faq.html

2

Один из Простейшими методами было бы использовать классы файлов журналов, найденные в .NET, а именно класс EventLog (найденный в System.Diagnostics), который позволяет вам получать или настраивать журналы событий Windows.

Ниже приведен пример использования:

using System.Diagnostics; 


class LogSample{ 

    public static void Main() 
    { 
     // let's create our application log file 
     if (!EventLog.SourceExists("ApplicationLog")) 
     { 
     EventLog.CreateEventSource("ApplicationLog", "SampleLog"); 
     } 

     EventLog log = new EventLog(); 
     log.Source = "ApplicationLog"; 

     // Here we can write the "categories" you require 
     log.WriteEntry("Some error entry goes here", EventLogEntryType.Error); 

     log.Close(); 

     // where EventLogEntryType enum has "Error", "Warning", "Information" 
     // we are done with the event log ... forever (ie. we don't want it on the machine) 
     log.Delete("ApplicationLog"); 
    } 
} 
4

Существуют различные механизмы протоколирования там, как другие уже говорили. Я предлагаю вам использовать CommonLogging (Марк Поллак, Эрих Эйчингер, Бруно Бая, которые также являются руководителями Spring.Net), поэтому вы не зависимы от конкретной реализации регистратора и можете изменить его через конфигурацию, как только узнаете, что вам нужна другая функция ведения журнала. .Net CommonLogging оснащен адаптерами для следующих библиотек Logging:

  • System.Trace
  • Log4Net
  • NLog
  • MS Enterprise Library
  • Простой ConsoleOut регистратор

и вы можно легко написать your own adapter или bridge between адаптеры регистрации.

+0

Это интересно, я раньше этого не видел, поэтому + 1. Будь я использую, что над log4net сомнительно. Мне никогда не приходилось менять свою логическую реализацию из log4net. Я предполагаю, что это пример абстракции над чем-то, что довольно абстрактно! – RichardOD

+0

Когда дело доходит до регистрации, личный вкус действительно играет огромную роль, имо (который не обнаружил, что когда-то писал в своем карьере разработчика журнал loggerclass?). Я думаю, что абстракция как обычное обращение удобна, когда проект/команда нечетко заявляет о требованиях к регистрации или использует различные программные компоненты из разных источников. в последнем случае мостовое каротаж позволяет использовать более чистые лог-файлы и более легкое обслуживание. Но вы правы RichardOD, ведь log4net в значительной степени завершен ;-) – tobsen

2

Я написал простой .net-регистратор с общедоступным источником. Он может соответствовать вашим потребностям.

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

(Перейти в меню Файл и выберите загрузки, чтобы получить файлы почтового индекса)

+1

ссылка не работает, идет на общую страницу Dyn dns :(. Найдена кешированная копия в google: http://webcache.googleusercontent.com/search ? q = cache: zGuLt5RqR7YJ: blog.nateperry.org/%3Fp%3D655+, но у него нет ссылок на источник или скачивание :( – John

+0

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

+1

cool thanks :), Кстати, вы можете переименовать название своего сайта в .com vs .org :). Также ссылки на скачивание «сломаны» в том, что они не являются ссылками, а просто текстовыми – John

Смежные вопросы