Мы пытаемся реализовать динамически настраиваемую регистрацию в нашем приложении Azure, и мы используем для этого корпоративные библиотеки, что прекрасно работает, однако xml, необходимый для этого, является более сложным, чем простая настройка стиля appSetting. который файл ServiceConfiguration.cscfg, кажется, принимает, потому что он требует вложенных узлов XML,
, например
<configSections>
<section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />
</configSections>
, который разрешается с помощью (простите форматирование в этом окне, пожалуйста):
<loggingConfiguration name="" tracingEnabled="true" defaultCategory="General">
<listeners>
<add listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.CustomTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
type="OurSolution.Common.AzureDiagnosticTraceListener, Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
name="AzureDiagnosticTraceListener" />
</listeners>
<formatters>
<add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
template="Timestamp: {timestamp}{newline}
Message: {message}{newline}
Category: {category}{newline}
Priority: {priority}{newline}
EventId: {eventid}{newline}
Severity: {severity}{newline}
Title:{title}{newline}
Machine: {localMachine}{newline}
App Domain: {localAppDomain}{newline}
ProcessId: {localProcessId}{newline}
Process Name: {localProcessName}{newline}
Thread Name: {threadName}{newline}
Win32 ThreadId:{win32ThreadId}{newline}
Extended Properties: {dictionary({key} - {value}{newline})}"
name="Text Formatter" />
</formatters>
<categorySources>
<add switchValue="All" name="General">
<listeners>
<add name="AzureDiagnosticTraceListener" />
</listeners>
</add>
</categorySources>
</loggingConfiguration>
Я не вижу способа обмануть файлы ServiceDefinition или ServiceConfiguration, чтобы принять это, хотя, если бы я мог, я могу найти способ заставить корпоративные библиотеки использовать файл ServiceConfiguration, что я могу сделать в app.config.
Почему мы пытаемся решить эту проблему, так это дать нам возможность динамически корректировать настройки ведения журнала, т. Е. Перейти от Без ведения журнала к подробному, без необходимости повторного развертывания, что отнимает много времени и нецелесообразно в нашем живом приложении, только недавно появившаяся в живых, поэтому может иметь странную ошибку; -)
Любые мысли будут приняты с благодарностью
С уважением
Киндо Малайский