2016-09-01 4 views
2

У меня есть проект ASP MVC с областями, и я должен регистрировать исключения в базе данных. Но у меня проблема. Я должен записывать журналы из каждой области в свою собственную таблицу в базе данных. У меня есть идея настроить DataTargets для всех областей с CommandText, связанных с именем таблицы, но это кажется довольно уродливым. Немного более фантастическим способом является получение всех областей при запуске приложений и построении целей через какую-либо фабрику.NLog. Запись журналов в разные таблицы

Есть ли у кого-нибудь идеи или рекомендации по этой проблеме?

ответ

3

CommandText свойства целевой базы данных является макетом, так что вы можете сделать:

<target xsi:type="Database" 
     name="db" 
     commandText="insert into ${event-properties:tablename} ... "> 

и используя свободно стиль (NLog.Fluent пространство имен):

logger.Info().Message("this is a message").Property("tablename", "table1").Write(); 

Вы можете также использовать более глобальные контексты, такие как GDC, MDC и т. д. См. NLog Wiki

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

  • Нет связанных вопросов^_^