View Single Post
Old 09-01-2004, 01:33 PM   #4 (permalink)
Atomic
Forum Expert
 
Join Date: Dec 2002
Posts: 730
Default

This is not my code, and I really don't remeber who made it but here it is. It stamps the time on each line of the console.

Code:
using System;
using System.IO;
using System.Text;

namespace System
{
	public class ConsoleHook : TextWriter
	{
		public override Encoding Encoding
		{
			get { return Encoding.ASCII; }
		}

		private string Timestamp
		{
			get { return String.Format( "{0:D2}/{1:D2}-{2:D2}:{3:D2} ",DateTime.Now.Day,DateTime.Now.Month,DateTime.Now.Hour,DateTime.Now.Minute ); }
		}

		private static Stream m_OldOutput;
		private static bool m_Newline;

		public static void Initialize()
		{
			m_OldOutput = Console.OpenStandardOutput();
			Console.SetOut( new ConsoleHook() );
			m_Newline = true;
		}

		public override void WriteLine( string value )
		{
			if ( m_Newline )
			{
				value = Timestamp + value;
			}

			byte[] data = Encoding.GetBytes( value );
			m_OldOutput.Write( data,0,data.Length );
			m_OldOutput.WriteByte( 10 );
			m_Newline = true;
		}

		public override void Write( string value )
		{
			if ( m_Newline )
			{
				value = Timestamp + value;
			}

			byte[] data = Encoding.GetBytes( value );
			m_OldOutput.Write( data,0,data.Length );
			m_Newline = false;
		}
	}
}
Atomic is offline   Reply With Quote