2009-09-30 3 views
0

Je crée une classe commune appelée writelog.cs Ceci est de stocker la méthode commune d'appeler dans tous mes programmes (page ASPX) Après quoi, quelle que soit l'erreur est produite, il va sortir une erreur log.txtwritelog.cs; erreur log.txt

ce sont mes codes pour writelog.cs et j'ai eu cette erreur: le nom « global » n'existe pas dans le contexte actuel

/// <summary> 
/// Summary description for Writelog 
/// </summary> 
/// <param name="Desc">Desc</param> 
/// <param name="ID">ID</param> 
/// <param name="Pg">Program</param> 
/// <param name="Msg">System Error Message</param> 
public class Writelog 
{ 
    public static void WritelogDesc(string Desc, string ID, string Pg, string Msg) 
    { 
     StringBuilder SB = new StringBuilder(); 

     string path = Global.getLogFilePath(); 

     SB.Append(DateTime.Now.ToString("dd/MM/yyyy") + " " + DateTime.Now.ToShortTimeString()); 
     SB.Append(" | "); 
     SB.Append(Desc); 
     SB.Append(" | "); 
     SB.Append(ID); 
     SB.Append(" | "); 
     SB.Append(Pg); 
     SB.Append(" | "); 
     SB.Append(Msg); 

     if (!File.Exists(path)) 
     { 
      using (StreamWriter sw = File.CreateText(path)) 
      { 
       sw.WriteLine(SB.ToString()); 
      } 
     } 

     using (StreamWriter sw = File.AppendText(path)) 
     { 
      Writelog.WritelogDesc(); 
      sw.WriteLine(SB.ToString()); 
     } 

    } 
} 

Et voici comment j'appelle writelog.cs

Writelog.WritelogDesc(); 
+0

Où est 'Global.getLogFilePath' défini, et qu'est-ce que ça ressemble? –

+0

Modifiez et formatez votre code sous une forme lisible. – Sauron

+1

Vous ne pouvez pas appeler votre méthode comme ça - il a 4 paramètres, et vous n'avez spécifié aucun argument. –

Répondre

1

Y a-t-il une raison pour laquelle vous n'utilisez pas un framework de loggin comme log4net? Ces frameworks vous offrent tellement plus de fonctionnalités que vous pouvez simplement en abuser et poursuivre le travail que vous voulez faire.

S'il existe une raison pour laquelle vous souhaitez effectuer votre propre journalisation, êtes-vous sûr d'avoir ajouté une référence à l'assembly contenant l'espace de noms global?

+0

Je suis d'accord, log4net, NLog, Enterprise Library, ELAMH sont tous des cadres de journalisation fantastiques et il ne devrait pas être nécessaire de rouler dans le vôtre. – Kane

+0

umm. Parce que je fais mon projet de fin d'année et c'est la demande de l'enseignant responsable. – Nana

+0

Assez juste. Avez-vous vérifié que l'assembly avec l'espace de noms global a été référencé? – Penfold

0
StreamWriter sw = (!File.Exists(path))? File.CreateText(path):File.AppendText(path); 
sw.WriteLine(SB.ToString());  

Appelez cette fonction où vous voulez en utilisant seulement le nom de classe et functionname avec des paramètres

Writelog.WritelogDesc(Desc, ID, Pg, Msg);