using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Interfaces;

namespace WindowsDataCenter.DefaultComponents
{
    public class DefaultLogger : ILogger
    {
        public bool IsDebugEnabled { get { return true; } }
        public bool IsErrorEnabled { get { return true; } }
        public bool IsFatalEnabled { get { return true; } }
        public bool IsInfoEnabled { get { return true; } }
        public bool IsTraceEnabled { get { return true; } }
        public bool IsWarnEnabled { get { return true; } }

        public void Debug(Exception exception)
        {
            System.Diagnostics.Debug.WriteLine(exception);
        }

        public void Debug(string format, params object[] args)
        {
            System.Diagnostics.Debug.WriteLine(string.Format(format, args));
        }

        public void Debug(Exception exception, string format, params object[] args)
        {
            System.Diagnostics.Debug.WriteLine(string.Format(exception + ", " + format, args));
        }

        public void Error(Exception exception)
        {
            System.Diagnostics.Debug.WriteLine(exception);
        }

        public void Error(string format, params object[] args)
        {
            System.Diagnostics.Debug.WriteLine(string.Format(format, args));
        }

        public void Error(Exception exception, string format, params object[] args)
        {
            System.Diagnostics.Debug.WriteLine(string.Format(exception + ", " + format, args));
        }

        public void Fatal(Exception exception)
        {
            System.Diagnostics.Debug.WriteLine(exception);
        }

        public void Fatal(string format, params object[] args)
        {
            System.Diagnostics.Debug.WriteLine(string.Format(format, args));
        }

        public void Fatal(Exception exception, string format, params object[] args)
        {
            System.Diagnostics.Debug.WriteLine(string.Format(exception + ", " + format, args));
        }

        public void Info(Exception exception)
        {
            System.Diagnostics.Debug.WriteLine(exception);
        }

        public void Info(string format, params object[] args)
        {
            System.Diagnostics.Debug.WriteLine(string.Format(format, args));
        }

        public void Info(Exception exception, string format, params object[] args)
        {
            System.Diagnostics.Debug.WriteLine(string.Format(exception + ", " + format, args));
        }

        public void Trace(Exception exception)
        {
            System.Diagnostics.Debug.WriteLine(exception);
        }

        public void Trace(string format, params object[] args)
        {
            System.Diagnostics.Debug.WriteLine(string.Format(format, args));
        }

        public void Trace(Exception exception, string format, params object[] args)
        {
            System.Diagnostics.Debug.WriteLine(string.Format(exception + ", " + format, args));
        }

        public void Warn(Exception exception)
        {
            System.Diagnostics.Debug.WriteLine(exception);
        }

        public void Warn(string format, params object[] args)
        {
            System.Diagnostics.Debug.WriteLine(string.Format(format, args));
        }

        public void Warn(Exception exception, string format, params object[] args)
        {
            System.Diagnostics.Debug.WriteLine(string.Format(exception + ", " + format, args));
        }
    }
}
