2016-12-02 5 views
0

Ich habe eine Anwendung, die log4net verwendet. Wenn ich jedoch einen SaveFileDialog zeige, werden die Appender von einem anderen Prozess überschrieben. Wenn ich die neuen Appender betrachte, glaube ich, dass sie aus einem Prozess stammen, der sich mit Icon-Overlays beschäftigt (da die Log-Datei "icon-overlays.log" heißt) und ich den Explorer in meiner Anwendung geöffnet habe.Log4net Appender von einem anderen Prozess überschrieben

Beispiel:

Log.Fatal("Before dialog");// logs fine 

SaveFileDialog newFileDialog = new Microsoft.Win32.SaveFileDialog(); 

Log.Fatal("Open dialog");//logs fine 

var appenders1 = Log.Logger.Repository.GetAppenders();//shows appenders from my config 

if (newFileDialog.ShowDialog() == false) 
{ 
    Log.Fatal("Cancelled dialog");//does not log 
    return; 
} 

var appenders2 = Log.Logger.Repository.GetAppenders();//shows appenders from other process 
Log.Fatal("New database selected");//does not log 

Wenn ich die Log-Dateien von diesen neuen Appen finden kann ich sehen, dass Protokolle fehlen mir gehen dorthin.

Weiß jemand, wie das passiert und wie man es vermeidet?

+0

Klingt wie ein Buggy-Shell-Erweiterung. Icon-Overlays würden den Finger auf Programme wie Dropbox zeigen, die Symbole ändern. (Obwohl ich Dropbox habe und ich dieses Problem nicht sehe) – sgmoore

+0

Das war auch meine Annahme, aber ich weiß nicht, wie ich damit umgehen soll. Das fragliche Programm ist Box Sync. – Lango

+0

Melden Sie es als Fehler in Box, oder sehen Sie, ob sie es bereits behoben haben. – sgmoore

Antwort

2

Sie müssen im log4net-Debugprotokoll nachschauen, was passiert. Es sieht so aus, als ob Sie mehrere Orte haben, an denen Sie log4net konfigurieren/konfigurieren und einen solchen Platz beim Öffnen des Dialogfelds eingeben.

aktivieren internen Debug:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <appSettings> 
     <add key="log4net.Internal.Debug" value="true"/> 
    </appSettings> 
</configuration> 

Schreibe eine bestimmte Datei:

<configuration> 
    ... 

    <system.diagnostics> 
     <trace autoflush="true"> 
      <listeners> 
       <add 
        name="textWriterTraceListener" 
        type="System.Diagnostics.TextWriterTraceListener" 
        initializeData="C:\tmp\log4net.txt" /> 
      </listeners> 
     </trace> 
    </system.diagnostics> 

    ... 
</configuration> 
+0

Damit habe ich nun bestätigt, dass es Box Sync ist, die meine Appender überschreibt, ich werde mich mit ihnen in Verbindung setzen. – Lango

+0

Wählen Sie dies, da es mir geholfen hat, mein Problem zu diagnostizieren – Lango

Verwandte Themen