// Construction
 public CLogMessageRequest( ELoggingChannel channel, string text )
     : base()
 {
     Channel = channel;
     Text = text;
     ThreadID = Thread.CurrentThread.ManagedThreadId;
     Time = DateTimeOffset.Now;
 }
        private CLogChannel Get_Or_Create_Log_Channel( ELoggingChannel channel )
        {
            CLogChannel log_channel = null;
            m_Channels.TryGetValue( channel, out log_channel );

            if ( log_channel == null )
            {
                log_channel = new CLogChannel( channel );
                m_Channels.Add( channel, log_channel );
            }

            return log_channel;
        }
 // Construction
 public CLogChannel( ELoggingChannel channel )
 {
     Channel = channel;
     m_FileName = null;
 }
        public static void Log( ELoggingChannel channel, ELogLevel log_level, string log_text )
        {
            if ( log_level > Get_Log_Level() || log_level <= ELogLevel.None )
            {
                return;
            }

            if ( Frame == null )
            {
                Frame = new COutboundLogFrame();
            }

            Frame.Add_Request( new CLogMessageRequest( channel, log_text ) );
        }