Esempio n. 1
0
        void Context_StateChanged(Pipeline Context, Pipeline.PipelineStates OldState, Pipeline.PipelineStates NewState)
        {
            if (!enabled) return;
            
            
            // string builder to construct the data segment string
            StringBuilder sb = new StringBuilder();
            if(Context.Data != null)
                foreach(KeyValuePair<string, object> kv in Context.Data)
                    sb.AppendFormat("{0}={1}\r\n", kv.Key, kv.Value);
            else
                sb.AppendFormat("--- EMPTY DATA SEGMENT ---");


            // Write out our data segment to the file
            TextWriter tw = output == "stdout" ? Console.Out : output == "stderr" ? Console.Error : null;
            try
            {
                if (tw == null)
                    tw = File.AppendText(output);

                tw.Write(string.Format("{4} - [PIPELINE STATE CHANGE ({0}->{1})]\r\nDATA SEGEMENT SIZE: {2}\r\nDATA SEGMENT DATA:\r\n{3}",
                OldState.ToString(), NewState.ToString(), Context.Data == null ? 0 : Context.Data.Count, sb.ToString(), DateTime.Now.ToString("dd-MMM-yy HH:mm:ss")));
            }
            catch (Exception e)
            {
                System.Diagnostics.Trace.WriteLine(e.ToString(), "fatal");
            }
            finally
            {
                if (tw != null && tw != System.Console.Out) tw.Close();
            }

        }