view Implab/Diagnostics/TraceEvent.cs @ 216:1e082fb67a46 v2

Fixed component container
author cin
date Tue, 25 Apr 2017 19:51:33 +0300
parents ea485487a424
children cc1baf7c8bd9
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 : String.Format(format, args));
        }
    }
}