2011-08-18 11 views

Odpowiedz

14

nie widział żadnych oczywistych sposób to zrobić inny niż tworzenie mój własny LayoutRenderer (patrz niżej). Jeśli oddanie do własnego montażu nie zapomnij dodać następujące do swojego plik NLog.config:

<extensions> 
    <add assembly="YOURASSEMBLYNAMEHERE" /> 
</extensions> 

Nadzieja pomaga to ktoś inny:

[LayoutRenderer("aspnet-config")] 
public class AspNetConfigValueLayoutRenderer : LayoutRenderer 
{ 
    [DefaultParameter] 
    public string Variable 
    { 
     get; 
     set; 
    } 

    protected override void Append(StringBuilder builder, LogEventInfo logEvent) 
    { 
     if (this.Variable == null) 
     { 
      return; 
     } 
     HttpContext context = HttpContext.Current; 
     if (context == null) 
     { 
      return; 
     } 
     builder.Append(Convert.ToString(System.Configuration.ConfigurationManager.AppSettings[this.Variable], CultureInfo.InvariantCulture)); 
    } 


} 
3

Obecnie jest to możliwe bez kodu niestandardowego :

Użyj NLog.Extended i użyj ${appsetting:SmtpHostServer}.

Zobacz docs for ${appsetting}

+0

Dziękujemy za dzielenie @Julian - przydatne wiedzieć. Od tego czasu zmieniłem dostawców rejestrowania. – DaveHogan

Powiązane problemy