Помогите пожалуйста конвертировать NLog v1.1 в NLog v2.0 - PullRequest
1 голос
/ 20 сентября 2011

Я хотел бы использовать Sharedcache (sharedcache.codeplex.com) в нашем проекте Silverlight v4.0.Тем не менее, мы используем NLog v2.0 для регистрации клиента.В настоящее время SharedCache поддерживает только NLog v1.1, который будет конфликтовать с NLog v2.0 на нашем веб-сервере.

Поэтому я решил преобразовать службу Windows Sharedcache для использования NLog v2.0.Компиляция прошла успешно.Но как только я запускаю сервис, я получил эту ошибку.Может кто-нибудь, знакомый с NLog, помочь?Я думаю, что это жалуется на макет.

Вот файл конфигурации службы Windows:

  <nlog autoReload="true" throwExceptions="true">
<targets async="true">
  <target name="shared_cache_general" type="File" layout="${longdate}|${level:uppercase=true}|${aspnet-request:item=logSession}|${message}" filename="C:\temp\logs\server\${date:format=yyyy-MM-dd}_shared_cache_general_log.txt"/>
  <target name="shared_cache_traffic" type="File" layout="${longdate}|${level:uppercase=true}|${aspnet-request:item=logSession}|${message}" filename="C:\temp\logs\server\${date:format=yyyy-MM-dd}_shared_cache_traffic_log.txt"/>
  <target name="shared_cache_tracking" type="File" layout="${longdate}|${level:uppercase=true}|${aspnet-request:item=logSession}|${message}" filename="C:\temp\logs\server\${date:format=yyyy-MM-dd}_shared_cache_tracking_log.txt"/>
  <target name="shared_cache_sync" type="File" layout="${longdate}|${level:uppercase=true}|${aspnet-request:item=logSession}|${message}" filename="C:\temp\logs\server\${date:format=yyyy-MM-dd}_shared_cache_sync_log.txt"/>
  <target name="shared_cache_memory" type="File" layout="${longdate}|${level:uppercase=true}|${aspnet-request:item=logSession}|${message}" filename="C:\temp\logs\server\${date:format=yyyy-MM-dd}_shared_cache_memory_log.txt"/>
</targets>
<rules>
  <logger name="General" minlevel="Debug" writeTo="shared_cache_general" final="true"/>
  <logger name="Traffic" minlevel="Debug" writeTo="shared_cache_traffic" final="true"/>
  <logger name="Tracking" minlevel="Debug" writeTo="shared_cache_tracking" final="true"/>
  <logger name="Sync" minlevel="Debug" writeTo="shared_cache_sync" final="true"/>
  <logger name="Memory" minlevel="Debug" writeTo="shared_cache_memory" final="true"/>
  <logger name="*" minlevel="Debug" writeTo="shared_cache_general"/>
  <logger name="*" minlevel="Info" writeTo="shared_cache_general"/>
</rules>

Когда я запустил службу в Visual Studio, я получилследующее исключение NLog:

{"Error when setting property 'Layout' on File Target[shared_cache_general]"}


at NLog.Internal.PropertyHelper.SetPropertyFromString(Object o, String name, String value, ConfigurationItemFactory configurationItemFactory) in c:\NLogBuild\src\NLog\Internal\PropertyHelper.cs:line 107
   at NLog.Config.XmlLoggingConfiguration.ConfigureObjectFromAttributes(Object targetObject, NLogXmlElement element, Boolean ignoreType) in c:\NLogBuild\src\NLog\Config\XmlLoggingConfiguration.cs:line 828
   at NLog.Config.XmlLoggingConfiguration.ParseTargetElement(Target target, NLogXmlElement targetElement) in c:\NLogBuild\src\NLog\Config\XmlLoggingConfiguration.cs:line 562
   at NLog.Config.XmlLoggingConfiguration.ParseTargetsElement(NLogXmlElement targetsElement) in c:\NLogBuild\src\NLog\Config\XmlLoggingConfiguration.cs:line 538
   at NLog.Config.XmlLoggingConfiguration.ParseNLogElement(NLogXmlElement nlogElement, String baseDirectory) in c:\NLogBuild\src\NLog\Config\XmlLoggingConfiguration.cs:line 344
   at NLog.Config.XmlLoggingConfiguration.ParseTopLevel(NLogXmlElement content, String baseDirectory) in c:\NLogBuild\src\NLog\Config\XmlLoggingConfiguration.cs:line 301
   at NLog.Config.XmlLoggingConfiguration.Initialize(XmlReader reader, String fileName, Boolean ignoreErrors) in c:\NLogBuild\src\NLog\Config\XmlLoggingConfiguration.cs:line 247

1 Ответ

1 голос
/ 03 октября 2011

Я понял это.Просто удалите следующий макет, и теперь он поддерживает NLog v2.0.

${aspnet-request:item=logSession}|
...