Avatar billede frostholm Praktikant
22. juni 2009 - 17:58 Der er 5 kommentarer og
1 løsning

C# logfil exeption

Jeg har lavet en win app som køre med 3 timere, alle 3 + main bruger en funktion til at logge i en tekstfil, ved at appende til filen, men jeg får en exception på filen er i brug.

Hvordan kan jeg sikre mig at alle eceptions logges i min logfil, selvom den er i brug .

kode :

  private void makeLogEntry(Exception ex, string method, string tekst)
        {

            String filnavn = appDir + "\\log"
                  + DateTime.Now.Day.ToString()
                  + DateTime.Now.Month.ToString()
                  + DateTime.Now.Year.ToString()
                  + ".log";

            if (!File.Exists(filnavn))
            {
                File.Create(filnavn);
            }

            StreamWriter SW;
            SW = File.AppendText(filnavn);
            SW.WriteLine("");
            SW.WriteLine("***********************************  LOG ENTRY BEGIN ***********************************");

            SW.WriteLine("Log time      : " + DateTime.Now.ToString());
            SW.WriteLine("Method        : " + method);
            SW.WriteLine("Text          : " + tekst);
            SW.WriteLine("Error message : " + ex.Message);
            SW.WriteLine("Error sourc  : " + ex.Source); 
            SW.WriteLine("Error innerex : " + ex.InnerException.Message);
            SW.WriteLine("stack trace  : " + ex.StackTrace);
            SW.WriteLine("***********************************  LOG ENTRY END  ***********************************");
            SW.WriteLine("");
            SW.Close();


        }
Avatar billede arne_v Ekspert
22. juni 2009 - 18:10 #1
Drop "do it yourself" logging og brug et faerdigt logging framework som f.eks. log4net.
Avatar billede arne_v Ekspert
22. juni 2009 - 18:40 #2
Hvis vil hacke saa proev med en lock til at synkronisere adgangen.
Avatar billede frostholm Praktikant
22. juni 2009 - 18:47 #3
synes log4net er for stort og for uoverskueligt.

Hvordan kan man evt styre lock hvis kald til log ikke sker sekventielt
Avatar billede arne_v Ekspert
22. juni 2009 - 19:14 #4
lock(sharedobj)
{
  // append til log fil
}

vil sikre at kun en traad skriver ad gangen.
Avatar billede arne_v Ekspert
22. juni 2009 - 19:15 #5
log4net er faktisk ikke saa svaert at bruge. Den kod eman skal skrive er saa minimalistisk som den kan vaere. Konfigurations filen kan godt drille lidt, men man laerer det. Og man kan blive glad for fleksibiliteten.
Avatar billede arne_v Ekspert
04. august 2009 - 03:28 #6
OK ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester