Платформа журналирования, хорошая идея?

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

8
задан Mike 22 October 2009 в 09:55
поделиться

10 ответов

На самом деле возможно запустить несколько рабочих процессов delayed_job.

Из http://github.com/collectiveidea/delayed_job :

# Runs two workers in separate processes.
$ RAILS_ENV=production script/delayed_job -n 2 start
$ RAILS_ENV=production script/delayed_job stop

Итак, теоретически, вы можете просто выполнить:

$ RAILS_ENV=production script/delayed_job -n 50 start

Это вызовет 50 процессов, однако я не уверен, будет ли это рекомендовано в зависимости от ресурсов системы, в которой вы это используете.


Альтернативным вариантом было бы использовать потоков . Просто создайте новый поток для каждого из ваших заданий.

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

Что касается его реализации, есть несколько хороших сайтов, рассказывающих вам о настройке. Как вы на самом деле используете объекты ведения журнала, которые предоставляет вам log4net, - это архитектурный выбор, но вы можете просто изменить конструктор объекта, чтобы он принимал объект log4net, и изнутри этого объекта просто используйте объект log4net, как вы бы Console.WriteLine .

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

6
ответ дан 5 December 2019 в 05:08
поделиться

Я хочу поблагодарить NLog ( http://nlog-project.org/home ), поскольку он не страдает синдромом «Прямой порт Java - затем переписать» большинства библиотек oss .Net.

Некоторые ключевые преимущества для нам были очень быстрый Logger.IsFooEnabled (непостоянное чтение) и общая производительность системы.

Каждому свое, но я лично предпочитаю NLog для своих проектов (и некоторых моих клиентов тоже).

Ура, Прямой порт Java - затем переписать синдром большинства библиотек oss .Net.

Некоторыми ключевыми преимуществами для нас были очень быстрый Logger.IsFooEnabled (непостоянное чтение) и общая производительность системы.

Каждому свое, но я лично предпочитаю NLog для своих проектов (и некоторых моих клиентов тоже).

Ура, Прямой порт Java - затем переписывание - синдром большинства библиотек oss .Net.

Некоторыми ключевыми преимуществами для нас были очень быстрый Logger.IsFooEnabled (непостоянное чтение) и общая производительность системы.

Каждому свое, но я лично предпочитаю NLog для своих проектов (и некоторых моих клиентов тоже).

Ура, Флориан

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

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

Найдите System.Diagnostics.EventLog, хотя log4net тоже будет писать в него ..

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

Начальное утверждение на веб-сайте log4j может помочь в некоторых из ваших вопросов, основные принципы такие же, как и у log4net:

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

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

In this case there's clearly no need to reinvent the wheel. Most Logging frameworks are somewhat straightforward, so the extend of changes will most likely depend on the size of your existing programs.

0
ответ дан 5 December 2019 в 05:08
поделиться

if you write your logger class properly it will be easily expendable to any of your needs. Any framework could impress you with many features but another framework is another variable in your debugging process as it can give you an error that does not exists or can make an error by itself in combination with your application. If you are ready to make beta testing for open source software project this is fine...

In your place i would write log class with ability to extend it features you find interesting to you project based on the list of features known frameworks have. I don't see any problem to log something to file and then send it over smpt, just one small function does the job.

Moreover, you can write your own class which will be pretty abstract and put your basic code in there, if you will ever need to use external framework for testing you class would be able to use it with minimal impact on code. Just take a look how there frameworks are implemented on the code level.

think of that you will need to learn how to properly use these frameworks when your only needs for now to log very small part of it...

0
ответ дан 5 December 2019 в 05:08
поделиться

Да. Хорошей идеей является использование существующей проверенной среды ведения журналов (например, Log4net).

Log4Net настраивается во время выполнения (отлично подходит для отслеживания проблем в производственном коде).

Как заметил один из комментаторов, также очень просто использовать.

13
ответ дан 5 December 2019 в 05:08
поделиться

Да, вы определенно хотите использовать среду ведения журналов. Платформа ведения журнала позволит вам:

  • Установить уровни ведения журнала для различных экземпляров регистратора.
  • Установить «дополнения» или вывод для каждого из различных экземпляров регистратора.

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

4
ответ дан 5 December 2019 в 05:08
поделиться

Я думаю, вам следует использовать Log4net, просто потому, что его всегда лучше использовать повторно, чем построить свою собственную вещь. log4net использовался многими разработчиками и уже достаточно развит.

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

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

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

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

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

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

Возьмем для примера ELMAH для приложений ASP.net. Он также включает в себя уведомления, экспорт в различные целевые форматы и т. Д. Вещи, которые довольно удобны, но вы никогда не создадите сами, если вам это действительно не нужно.

Количество необходимых изменений в вашем коде, очевидно, зависит как от вашего кода, так и от выбранной структуры. Это'

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

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