2015-03-01 18 views
19

Sto tentando di configurare il sito Web di azure asp.net per inviare tracce di log4net ad Azure Application Insights. Riesco a vedere nelle mie schermate di console in azzurro, ecc. Quindi so che sta funzionando bene. Posso anche vedere le tracce di log4net, quando configurato con un gestore di file, ma quando si configura log4net per utilizzare il gestore delle informazioni sulle applicazioni non vedo alcuna voce di log4net apparire nel dashboard di insight dell'applicazione, nessun errore o avviso in fase di compilazione o di esecuzione - solo nessun risultato nella dashboard. Ho esaminato il traffico di rete su Fiddler e posso vedere i dati della visualizzazione di pagina, ecc., Inviati alle informazioni sulle applicazioni, ma non il traffico di traccia di log4net, quindi sospetto che si tratti di un problema di configurazione.Log4Net con Application Insights

In modo separato Ho provato il TelemetryClient() nel mio progetto principale, e vedo il tracetraffic sufficentemente nella dashboard. Tuttavia, questo non si adatta al mio caso d'uso in quanto TelemetryClient non sembra supportare le dll di asp.net ancora (cioè la mia logica di business e dati che sono in dll separate).

Qualcuno offre qualche suggerimento o consiglio?

Ho installato il pacchetto NuGet per Microsoft.ApplicationInsights.Log4NetAppender.dll e sto usando Microsoft.ApplicationInsights.0.13.2-build00132

Ho il seguente nel mio web.config come da http://geekswithblogs.net/jakob/archive/2014/11/09/using-log4net-for-application-insights.aspx

<configuration> 
    <configSections> 
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> 
    </configSections> 
    <log4net> 
    <root> 
     <level value="ALL"/> 
     <appender-ref ref="aiAppender"/> 
    </root> 
    <appender name="aiAppender" type="Microsoft.ApplicationInsights.Log4NetAppender.ApplicationInsightsAppender, Microsoft.ApplicationInsights.Log4NetAppender"> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%message%newline"/> 
     </layout> 
    </appender> 
    </log4net> 
<configuration> 
+0

Ciao, io ho lo stesso problema ... Hai già trovato una soluzione? Grazie ... – bob

+0

@bob no, non ancora.Ho contattato il team MS, ma non ho ancora ricevuto feedback. – BMac

+0

Sto avendo esattamente lo stesso problema. Riesco a vedere le eccezioni non rilevate registrate in Application Insights ma nessuna traccia per log4net anche se appare nel file appender bene. Hai mai trovato una ragione per questo? – Phil

risposta

1

La configurazione di log4net è corretta; L'ho usato in un sito Web di prova e ha funzionato. Inoltre, dal momento che stai vedendo altri dati IA in Fiddler, anche l'IA è configurata correttamente. Una cosa da cercare in questi casi è l'attributo log4net.Config.XmlConfigurator. È un attributo a livello di assembly e potrebbe essere necessario per la corretta lettura della configurazione di log4net.

[assembly: log4net.Config.XmlConfigurator(Watch = true)] 

Potete assicurarvi di averlo specificato nel vostro progetto e riprovare?

+0

grazie a @tokaplan Darò questa prova stasera e risponderò in entrambi i modi, questo certamente sembra plausibile. – BMac

+0

sfortunatamente questo non sembra fare alcuna differenza, ancora nessun traffico di eventi che mostra in uscita quando si guarda via violinista e quindi nulla nella dashboard. Penso che inizierò con i primi principi. – BMac

4

Provare a installare la versione PreRelease di Log4Net Appender.

Avevo creato un esempio MVC ASP.NET canonico seguendo i passaggi created by someone else e presentava lo stesso problema sopra. Ma poi ha seguito alcuni passaggi scritti in the Application Insights documentation e ha scoperto che quelli specificati l'installazione del pacchetto PreRelease per l'appender log4net. Dopo averlo fatto funzionare :)

+0

Thakns @Phil Farò sicuramente una prova, e ti faccio sapere. – BMac

+1

@Phil Sto cercando di fare lo stesso e ho APp Insights che registra eccezioni, numero di richieste, ecc., Ma non riesco a vedere i miei messaggi di Log.Info() ovunque. Eventuali suggerimenti? – awj

+0

Scusate @awj ma non sto guardando l'integrazione di Application Insights molto al momento e il mio carico di lavoro significa che non sono propenso a farlo neanche per un po '. – Phil

0

Nel mio caso (ho aggiunto Application Insights all'applicazione Web esistente) oltre a Microsoft.ApplicationInsights.Log4NetAppender ho dovuto aggiungere il pacchetto Microsoft.ApplicationInsights.Web utilizzando NuGet. Dopodiché in creato ApplicationInsights.config devi specificare il tuo InstrumentationKey.

E.g. di ApplicationInsights.config

<?xml version="1.0" encoding="utf-8"?> 
<ApplicationInsights xmlns="http://schemas.microsoft.com/ApplicationInsights/2013/Settings"> 
    <InstrumentationKey>YOUR KEY HERE</InstrumentationKey> 
    <TelemetryModules> 
    ... 
1

Ho anche avuto alcuni problemi con l'invio miei log log4net ad AI in un sito web Sitecore. Sitecore ha la propria implementazione di Log4Net, quindi non ha funzionato con il pacchetto AI Nuget. Ho creato il mio Apprender in cui invio i log ad AI.

public class CustomLogFileAppender : SitecoreLogFileAppender 
    { 
     protected override void Append(LoggingEvent loggingEvent) 
     { 
      if (Sitecore.Context.Site != null) 
      { 

       if(loggingEvent.Level == Level.FATAL) 
       { 
        AppsInsightsLogHelper.Critical(loggingEvent.RenderedMessage); 
       } 

       if (loggingEvent.Level == Level.ERROR) 
       { 
        AppsInsightsLogHelper.Error(loggingEvent.RenderedMessage); 
       } 

       if (loggingEvent.Level == Level.WARN) 
       { 
        AppsInsightsLogHelper.Warning(loggingEvent.RenderedMessage); 
       } 

       if(loggingEvent.Level == Level.INFO) 
       { 
        AppsInsightsLogHelper.Info(loggingEvent.RenderedMessage); 
       } 


      } 

       base.Append(loggingEvent); 
     } 
    } 

In sitecore.config:

<log4net> 
    <appender name="LogFileAppender" type="namespace.CustomLogFileAppender, dll name"> 
     ... 
    </appender> 
</log4net> 
Problemi correlati