2013-06-20 2 views
1

Я пытаюсь настроить NLog отправить почту и использовать мои настройки системы (с каталогом пикапа), как documented hereNLog почта Конфигурация useSystemNetMailSettings «useSystemNetMailSettings Параметр не поддерживается на MailTarget»

Вот моя конфигурация NLog

<nlog internalLogLevel="Trace" internalLogFile="C:\NLogInternal.log" throwExceptions="true" autoReload="true" xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<targets> 
    <target name="logfile" xsi:type="File" fileName="c:\backupservice.log.txt" layout="${longdate} ${callsite} ${level} ${message}"/> 
    <target name="console" xsi:type="Console" /> 
    <target xsi:type="EventLog" 
      name="event" 
      layout="${longdate} ${callsite} ${level} ${message}" 
      source="BackupService" 
      eventId="898" 
      log="BackupService" 
       /> 
    <target xsi:type="Mail" 
      name="email" 
      useSystemNetMailSettings="True" 
      layout="${longdate} ${callsite} ${level} ${message}" /> 
</targets> 
<rules> 
    <logger name="*" minlevel="Fatal" writeTo="email" /> 
    <logger name="*" minLevel="Info" writeTo="event" /> 
    <logger name="*" minLevel="Debug" writeTo="console" /> 
</rules> 

Вот моя почта установка:

<system.net> 
<mailSettings> 
    <smtp from="[email protected][COMPANY].com" deliveryMethod="SpecifiedPickupDirectory"> 
    <specifiedPickupDirectory pickupDirectoryLocation="C:\testmail\Pickup" /> 
    <network host="mail.[COMPANY].com" password="[PASSWORD]" userName="[EMAIL_ADDRESS]" /> 
    </smtp> 
</mailSettings> 

Вот выход из внутреннего протоколирования NLog в:

** SNIP ** 
2013-06-20 17:41:03.8368 Debug Setting 'MailTarget.name' to 'email' 
2013-06-20 17:41:03.8368 Debug Setting 'MailTarget.useSystemNetMailSettings' to 'True' 
2013-06-20 17:41:03.8688 Error Error System.NotSupportedException: Parameter useSystemNetMailSettings not supported on MailTarget 
at NLog.Internal.PropertyHelper.SetPropertyFromString(Object o, String name, String value, ConfigurationItemFactory configurationItemFactory) 
at NLog.Config.XmlLoggingConfiguration.ConfigureObjectFromAttributes(Object targetObject, NLogXmlElement element, Boolean ignoreType) 
at NLog.Config.XmlLoggingConfiguration.ParseTargetElement(Target target, NLogXmlElement targetElement) 
at NLog.Config.XmlLoggingConfiguration.ParseTargetsElement(NLogXmlElement targetsElement) 
at NLog.Config.XmlLoggingConfiguration.ParseNLogElement(NLogXmlElement nlogElement, String baseDirectory) 
at NLog.Config.XmlLoggingConfiguration.ParseTopLevel(NLogXmlElement content, String baseDirectory) 
at NLog.Config.XmlLoggingConfiguration.Initialize(XmlReader reader, String fileName, Boolean ignoreErrors)... 
2013-06-20 17:41:03.8688 Error ConfigSectionHandler error:  NLog.NLogConfigurationException: Exception occurred when loading configuration from C:\Projects\Fee\WindowsServices\BackupService\BackupService\bin\Debug\BackupService.vshost.exe.Config ---> System.NotSupportedException: Parameter useSystemNetMailSettings not supported on MailTarget 
at NLog.Internal.PropertyHelper.SetPropertyFromString(Object o, String name, String value, ConfigurationItemFactory configurationItemFactory) 
at NLog.Config.XmlLoggingConfiguration.ConfigureObjectFromAttributes(Object targetObject, NLogXmlElement element, Boolean ignoreType) 
at NLog.Config.XmlLoggingConfiguration.ParseTargetElement(Target target, NLogXmlElement targetElement) 
at NLog.Config.XmlLoggingConfiguration.ParseTargetsElement(NLogXmlElement targetsElement) 
at NLog.Config.XmlLoggingConfiguration.ParseNLogElement(NLogXmlElement nlogElement, String baseDirectory) 
at NLog.Config.XmlLoggingConfiguration.ParseTopLevel(NLogXmlElement content, String baseDirectory) 
at NLog.Config.XmlLoggingConfiguration.Initialize(XmlReader reader, String fileName, Boolean ignoreErrors) 
--- End of inner exception stack trace --- 
at NLog.Config.XmlLoggingConfiguration.Initialize(XmlReader reader, String fileName, Boolean ignoreErrors) 
at NLog.Config.XmlLoggingConfiguration..ctor(XmlElement element, String fileName) 
at NLog.Config.ConfigSectionHandler.System.Configuration.IConfigurationSectionHandler.Create(Object parent, Object configContext, XmlNode section) 

Я не уверен, что я делаю неправильно, или если это ошибка в Nlog.

NB: Я пробовал использовать useSystemNetMailSettings и UseSystemNetMailSettings.

ответ

1

Так что я не получил NLog для работы конкретно через NLog, но я использовал работу. NLog имеет "MethodCall" target, что я использовал так:

 <target name="sendmail" xsi:type="MethodCall" className="BackupLib.Email, BackupLib" methodName="Send"> 
    <parameter layout="[email protected][COMPANY].com" /> 
    <parameter layout="[email protected][COMPANY].com" /> 
    <parameter layout="FATAL ERROR: Backup Service on ${machinename}" /> 
    <parameter layout="${longdate} - ${callsite} - ${message}" /> 
    </target> 
</targets> 
<rules> 
    <logger name="*" minLevel="Fatal" writeTo="sendmail" /> 
    <logger name="*" minLevel="Info" writeTo="event" /> 
    <logger name="*" minLevel="Debug" writeTo="console" /> 
</rules> 

Это позволило мне вызвать статический метод (BackupLib.Email.Send()), который разослал по электронной почте для меня. Простой, но эффективный и, так как я использовал SMTPClient, запеченный в .NET, он использовал настройки моей системы электронной почты!

Рад, что я наконец получил это.

+0

Но как вы получили файл журнала? Вы отправили прикрепленный файл? – NetSide

+0

Это метод вызова: BackupLib.Email.SendMail (From, To, Subject, Body). От/To/Subject/Body соответствует s в . Электронное письмо создается каждый раз, когда возникает фатальная ошибка. –

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