Click here to Skip to main content
15,885,655 members
Articles / Desktop Programming / WPF

Writing Your Own RTF Converter

Rate me:
Please Sign up or sign in to vote.
4.95/5 (234 votes)
1 Aug 2013CPOL14 min read 2.4M   40.4K   632  
An article on how to write a custom RTF parser and converter.
// -- FILE ------------------------------------------------------------------
// name       : LoggerImplBase.cs
// project    : System Framelet
// created    : Leon Poyyayil - 2008.05.14
// language   : c#
// environment: .NET 2.0
// copyright  : (c) 2004-2013 by Jani Giannoudis, Switzerland
// --------------------------------------------------------------------------
using System;

namespace Itenso.Sys.Logging
{

	// ------------------------------------------------------------------------
	public abstract class LoggerImplBase : LoggerBase, ILogger
	{

		// ----------------------------------------------------------------------
		protected LoggerImplBase()
		{
			level = LoggerLevel.Warn;
		} // LoggerImplBase

		// ----------------------------------------------------------------------
		protected LoggerImplBase( LoggerLevel level )
		{
			this.level = level;
		} // LoggerImplBase

		// ----------------------------------------------------------------------
		public LoggerLevel Level
		{
			get { return level; }
			set { level = value; }
		} // Level

		// ----------------------------------------------------------------------
		public bool IsDebugEnabled
		{
			get { return LoggerLevel.Debug.CompareTo( level ) <= 0; }
		} // IsDebugEnabled

		// ----------------------------------------------------------------------
		public bool IsInfoEnabled
		{
			get { return LoggerLevel.Info.CompareTo( level ) <= 0; }
		} // IsInfoEnabled

		// ----------------------------------------------------------------------
		public bool IsWarnEnabled
		{
			get { return LoggerLevel.Warn.CompareTo( level ) <= 0; }
		} // IsWarnEnabled

		// ----------------------------------------------------------------------
		public bool IsErrorEnabled
		{
			get { return LoggerLevel.Error.CompareTo( level ) <= 0; }
		} // IsErrorEnabled

		// ----------------------------------------------------------------------
		public bool IsFatalEnabled
		{
			get { return LoggerLevel.Fatal.CompareTo( level ) <= 0; }
		} // IsFatalEnabled

		// ----------------------------------------------------------------------
		public bool IsEnabledFor( LoggerLevel loggerLevel )
		{
			return loggerLevel.CompareTo( level ) <= 0;
		} // IsEnabledFor

		// ----------------------------------------------------------------------
		public virtual void Debug( object message )
		{
			Log( LoggerLevel.Debug, message );
		} // Debug

		// ----------------------------------------------------------------------
		public virtual void Debug( object message, Exception exception )
		{
			Log( LoggerLevel.Debug, message, exception );
		} // Debug

		// ----------------------------------------------------------------------
		public virtual void DebugFormat( string format, params object[] args )
		{
			LogFormat( LoggerLevel.Debug, format, args );
		} // DebugFormat

		// ----------------------------------------------------------------------
		public virtual void DebugFormat( IFormatProvider provider, string format, params object[] args )
		{
			LogFormat( LoggerLevel.Debug, provider, format, args );
		} // DebugFormat

		// ----------------------------------------------------------------------
		public virtual void Info( object message )
		{
			Log( LoggerLevel.Info, message );
		} // Info

		// ----------------------------------------------------------------------
		public virtual void Info( object message, Exception exception )
		{
			Log( LoggerLevel.Info, message, exception );
		} // Info

		// ----------------------------------------------------------------------
		public virtual void InfoFormat( string format, params object[] args )
		{
			LogFormat( LoggerLevel.Info, format, args );
		} // InfoFormat

		// ----------------------------------------------------------------------
		public virtual void InfoFormat( IFormatProvider provider, string format, params object[] args )
		{
			LogFormat( LoggerLevel.Info, provider, format, args );
		} // InfoFormat

		// ----------------------------------------------------------------------
		public virtual void Warn( object message )
		{
			Log( LoggerLevel.Warn, message );
		} // Warn

		// ----------------------------------------------------------------------
		public virtual void Warn( object message, Exception exception )
		{
			Log( LoggerLevel.Warn, message, exception );
		} // Warn

		// ----------------------------------------------------------------------
		public virtual void WarnFormat( string format, params object[] args )
		{
			LogFormat( LoggerLevel.Warn, format, args );
		} // WarnFormat

		// ----------------------------------------------------------------------
		public virtual void WarnFormat( IFormatProvider provider, string format, params object[] args )
		{
			LogFormat( LoggerLevel.Warn, provider, format, args );
		} // WarnFormat

		// ----------------------------------------------------------------------
		public virtual void Error( object message )
		{
			Log( LoggerLevel.Error, message );
		} // Error

		// ----------------------------------------------------------------------
		public virtual void Error( object message, Exception exception )
		{
			Log( LoggerLevel.Error, message, exception );
		} // Error

		// ----------------------------------------------------------------------
		public virtual void ErrorFormat( string format, params object[] args )
		{
			LogFormat( LoggerLevel.Error, format, args );
		} // ErrorFormat

		// ----------------------------------------------------------------------
		public virtual void ErrorFormat( IFormatProvider provider, string format, params object[] args )
		{
			LogFormat( LoggerLevel.Error, provider, format, args );
		} // ErrorFormat

		// ----------------------------------------------------------------------
		public virtual void Fatal( object message )
		{
			Log( LoggerLevel.Fatal, message );
		} // Fatal

		// ----------------------------------------------------------------------
		public virtual void Fatal( object message, Exception exception )
		{
			Log( LoggerLevel.Fatal, message, exception );
		} // Fatal

		// ----------------------------------------------------------------------
		public virtual void FatalFormat( string format, params object[] args )
		{
			LogFormat( LoggerLevel.Fatal, format, args );
		} // FatalFormat

		// ----------------------------------------------------------------------
		public virtual void FatalFormat( IFormatProvider provider, string format, params object[] args )
		{
			LogFormat( LoggerLevel.Fatal, provider, format, args );
		} // FatalFormat

		// ----------------------------------------------------------------------
		public virtual void Log( LoggerLevel loggerLevel, object message )
		{
			Log( loggerLevel, message, null );
		} // Log

		// ----------------------------------------------------------------------
		public virtual void Log( LoggerLevel loggerLevel, object message, Exception exception )
		{
			if ( IsEnabledFor( loggerLevel ) )
			{
				Output( loggerLevel, message, exception );
			}
		} // Log

		// ----------------------------------------------------------------------
		public virtual void LogFormat( LoggerLevel loggerLevel, string format, params object[] args )
		{
			Log( loggerLevel, string.Format( format, args ) );
		} // LogFormat

		// ----------------------------------------------------------------------
		public virtual void LogFormat( LoggerLevel loggerLevel, IFormatProvider provider, string format, params object[] args )
		{
			Log( loggerLevel, string.Format( provider, format, args ) );
		} // LogFormat

		// ----------------------------------------------------------------------
		protected abstract void Output( LoggerLevel level, object message, Exception exception );

		// ----------------------------------------------------------------------
		protected sealed override ILogger Logger
		{
			get { return this; }
		} // Logger

		// ----------------------------------------------------------------------
		// members
		private LoggerLevel level;

	} // class LoggerNone

} // namespace Itenso.Sys.Logging
// -- EOF -------------------------------------------------------------------

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer (Senior)
Switzerland Switzerland
👨 Senior .NET Software Engineer

🚀 My Open Source Projects
- Time Period Library 👉 GitHub
- Payroll Engine 👉 GitHub

Feedback and contributions are welcome.



Comments and Discussions