示例#1
0
文件: Logger.cs 项目: Basilid/Spheres
 protected void AddToLastLine(LogItem li)
 {
     while (LastLines.Count >= MaxCountLastLines)
         LastLines.RemoveAt(LastLines.Count - 1);
     LastLines.Insert(0, li);
 }
示例#2
0
文件: Logger.cs 项目: Basilid/Spheres
 private void ShowLine(LogItem li)
 {
     string strk = "{0} {1} {2} {3}".goFormat(li.TimeStamp.ToString(DateTimeFormat), li.Level, li.Source, li.Desc);
     Console.WriteLine(strk);
     if (li.Level != LogLevel.llEcho)
     {                
         try
         {
             using (StreamWriter sw = new StreamWriter(new FileStream(
                 System.IO.Path.Combine(Path, "{0}-{1:yyyy-MM}.log".goFormat(Name, DateTime.Now)), 
                 FileMode.Append, FileAccess.Write, FileShare.Read)))
             {
                 sw.WriteLine(strk);
             }
         }
         catch { }
     }
 }
示例#3
0
文件: Logger.cs 项目: Basilid/Spheres
 protected void AddLine(LogLevel level, string Source, bool toCascade, string Desc)
 {
     lock (this)
     {
         LogItem li = new LogItem(Desc, level, Source);
         if (Dispatcher.CurrentDispatcher != Dispatcher && Dispatcher != null)
             this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new AddLine(AddToLastLine), li);
             //this.Dispatcher.Invoke(DispatcherPriority.Normal, TimeSpan.FromSeconds(3), new AddLine(AddToLastLine), li);
         else
             AddToLastLine(li);
         ShowLine(li);
     }
     if (toCascade)
         foreach (var item in cascade)
             item.AddLine(level, Source, Desc);
 }