public PerfMonitor([System.Runtime.CompilerServices.CallerMemberName] string memberName = "")
     : base()
 {
     perfLog         = PerfMonitorContext.Current;
     this.stopwatch  = Stopwatch.StartNew();
     line            = new PerfMonitorLine();
     line.MemberName = memberName;
 }
Exemple #2
0
        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
            }
        }