view Implab/Diagnostics/TraceLog.cs @ 52:edf0bc558596

improved trace system
author cin
date Mon, 05 May 2014 07:35:48 +0400
parents fe33f4e02ad5
children 790e8a997d30
line wrap: on
line source

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Implab.Diagnostics {
    /// <summary>
    /// Класс для публикации событий выполнения программы, события публикуются через <see cref="LogChannel{TraceEvent}"/>.
    /// Журнал трассировки отражает логический ход выполнения программы и существует всегда, поскольку тесно связан с 
    /// контекстом трассировки.
    /// </summary>
    public static class TraceLog {
        [Conditional("TRACE")]
        public static void StartLogicalOperation() {
            TraceContext.Current.StartLogicalOperation();
        }

        [Conditional("TRACE")]
        public static void StartLogicalOperation(string name) {
            TraceContext.Current.StartLogicalOperation(name);
        }

        [Conditional("TRACE")]
        public static void EndLogicalOperation() {
            TraceContext.Current.EndLogicalOperation();
        }

        [Conditional("TRACE")]
        public static void BindLogicalOperationToPromise(IPromiseBase promise) {
            TraceContext.Current.BindLogicalOperationToPromise(promise);
        }

        [Conditional("TRACE")]
        public static void TraceInformation(string format, params object[] arguments) {
            LogChannel<TraceEvent>.Default.LogEvent(TraceEvent.Create(TraceEventType.Information, format, arguments));
        }

        [Conditional("TRACE")]
        public static void TraceWarning(string format, params object[] arguments) {
            LogChannel<TraceEvent>.Default.LogEvent(TraceEvent.Create(TraceEventType.Warning, format, arguments));
        }

        [Conditional("TRACE")]
        public static void TraceError(string format, params object[] arguments) {
            LogChannel<TraceEvent>.Default.LogEvent(TraceEvent.Create(TraceEventType.Error, format, arguments));
        }

        [Conditional("TRACE")]
        public static void TraceError(Exception err) {
            TraceError("{0}", err);
        }
    }
}