2014-12-04 4 views
1

Я работаю над приложением, которое использует NLog, чтобы мы могли отслеживать выполнение рабочего процесса. Каждое исполнение обозначается идентификатором отслеживания (GUID), который сохраняется для связывания сообщаемых и отправленных сообщений. Мы в идеале хотели бы регистрировать каждое исполнение в собственном файле журнала, используя этот идентификатор отслеживания в имени. напримерNLog Target File Names

Logs \ MyExecution_97301078-2119-48e9-876d-64002257b399.txt
Logs \ MyExecution_1e5b60d5-95b5-4fdc-94cc-886d379e2b13.txt
Logs \ MyExecution_07b427a9-106d-4865-a288-625e1cd56dd1.txt

Достижимо ли это с помощью целей NLog?

+0

Это может помочь .. http://stackoverflow.com/questions/20352325/logging-in-multiple-files-using -nlog – jKlaus

+0

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

+0

Как вы отслеживаете GUID? Вы явно включаете его в каждое сообщение регистрации? Вы устанавливаете его в одном из объектов контекста NLOG? Используете ли вы встроенную .NET System.Diagnostics.Trace.CorrelationManager.ActivityId? – wageoghe

ответ

1

Вы не ограничены регистрацией нескольких регистраторов в файле конфигурации; вы можете использовать Configuration API. Например (взято из ссылки, вы, вероятно, придется изменить для вашей ситуации)

// create configuration object 
var config = new LoggingConfiguration(); 

// create a target 
var fileTarget = new FileTarget(); 
config.AddTarget("SomeName", fileTarget); 

// set properties 
fileTarget.FileName = "something/guid.txt"; 

// activate the configuration 
LogManager.Configuration = config; 
Смежные вопросы