Поделитесь конфигурацией nlog с несколькими проектами и правильным потокобезопасным способом записи в один и тот же файл журнала?

моя программа состоит из одного EXE и 6 DLL (и, конечно, все ссылаются на всех), у меня в настоящее время есть грубый статический класс ведения журнала (Logger), который находится в своей собственной DLL (Logger.dll), который я добавляю в качестве ссылки на каждый из моих проектов и использую ... но вместо того, чтобы заново изобретать колесо, я хотел заменить его на nLog.

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

  1. есть ли способ иметь один файл конфигурации для всех моих проектов?
  2. безопасно ли это делать? будет nLog в каждом проекте доступ к той же файл не вызвать конфликтов? nLog уже обрабатывает это правильно?

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

спасибо,

1 ответов


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