view Implab/Diagnostics/TraceEvent.cs @ 242:cbe10ac0731e v3

Working on promises
author cin
date Wed, 24 Jan 2018 03:03:21 +0300
parents cc1baf7c8bd9
children
line wrap: on
line source

using System;

namespace Implab.Diagnostics {
    public class TraceEvent {
        public string Message {
            get;
            private set;
        }

        public TraceEventType EventType {
            get;
            private set;
        }

        /// <summary>
        /// The logical operation this event belongs to.
        /// </summary>
        public LogicalOperation Operation {
            get;
            private set;
        }

        /// <summary>
        /// Gets the time offset in milliseconds from the start of the operation, if the operation is not specified the value is zero.
        /// </summary>
        public int OperationTime {
            get;
            private set;
        }

        public TraceEvent(LogicalOperation operation, TraceEventType type, string message) {
            EventType = type;
            Message = message;
            Operation = operation;
            if (operation != null)
                OperationTime = operation.Duration;
        }

        public override string ToString() {
            return Message;
        }

        public static TraceEvent Create(LogicalOperation operation, TraceEventType type, string format, params object[] args) {
            return new TraceEvent(operation, type, format == null ? String.Empty : args == null || args.Length == 0 ? format : String.Format(format, args));
        }
    }
}