public PerfMonitor([System.Runtime.CompilerServices.CallerMemberName] string memberName = "") : base() { perfLog = PerfMonitorContext.Current; this.stopwatch = Stopwatch.StartNew(); line = new PerfMonitorLine(); line.MemberName = memberName; }
public void Write(PerfMonitorLine log) { if (!this.Enabled) { return; } System.IO.Directory.CreateDirectory(new FileInfo(this.FilePath).Directory.FullName); try { using (FileStream fs = new FileStream(this.FilePath, FileMode.OpenOrCreate, System.Security.AccessControl.FileSystemRights.AppendData, FileShare.Write, 4096, FileOptions.None)) { using (StreamWriter writer = new StreamWriter(fs)) { writer.AutoFlush = true; if (log.Id != Guid.Empty) { Id = log.Id; } var msg = string.Format(this.Format, log.DateTime, log.Method, log.Url, log.Status, log.Duration, log.MemberName, log.Message, Id); writer.WriteLine(msg); } } } catch (Exception) { //TODO: write Log Error } }