view Implab/Diagnostics/TraceLog.cs @ 40:fe33f4e02ad5

improved tracing added text listeners (file,console)
author cin
date Tue, 15 Apr 2014 17:52:09 +0400
parents 313f708a50e9
children edf0bc558596
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 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);
        }
    }
}