view Implab/Diagnostics/LogChannel.cs @ 41:2fc0fbe7d58b

Added TraceContext support to array traits
author cin
date Tue, 15 Apr 2014 18:06:34 +0400
parents c2c043520724
children d9d794b61bb9
line wrap: on
line source

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Implab.Diagnostics {
    public class LogChannel<TEvent> {
        static LogChannel<TEvent> _default = new LogChannel<TEvent>();

        public static LogChannel<TEvent> Default {
            get {
                return _default;
            }
        }

        public event EventHandler<ValueEventArgs<TEvent>> Events;

        public void LogEvent(TEvent data) {
            var t = Events;
            if (t!= null)
                t(TraceContext.Current,new ValueEventArgs<TEvent>(data));
        }

        public void LogEvent(TraceContext context,TEvent data) {
            var t = Events;
            if (t != null)
                t(context, new ValueEventArgs<TEvent>(data));
        }
    }
}