#include "pch.h"
#include "Extensions/Logging/LoggerTextWriter.h"
#include "Extensions/Logging/LogManager.h"
#include "System/Text/TextEncoding.h"

namespace DotNetDupe {
    namespace Extensions {
        namespace Logging {

            LoggerTextWriter::LoggerTextWriter(const DotNetDupe::System::String& sCategoryName, LogLevel logLevel)
                : m_pLogger(LogManager::GetLogger(sCategoryName)), m_logLevel(logLevel) {
            }

            LoggerTextWriter::LoggerTextWriter(const DotNetDupe::System::SmartPointer<ILogger>& pLogger, LogLevel logLevel)
                : m_pLogger(pLogger), m_logLevel(logLevel) {
            }

            void LoggerTextWriter::Close() {
            }

            void LoggerTextWriter::Dispose() {
            }

            void LoggerTextWriter::Flush() {
            }

            System::Text::EncodingPtr LoggerTextWriter::GetEncoding() const {
                return DotNetDupe::System::Text::TextEncoding::UTF8();
            }

            void LoggerTextWriter::Write(bool bValue) {
                Write(DotNetDupe::System::String::Format("{0}", bValue));
            }

            void LoggerTextWriter::Write(char chValue) {
                Write(DotNetDupe::System::String::Format("{0}", chValue));
            }

            void LoggerTextWriter::Write(const char* pValue) {
                if (pValue) {
                    Write(DotNetDupe::System::String(pValue));
                }
            }

            void LoggerTextWriter::Write(const DotNetDupe::System::String& sValue) {
                if (!sValue.IsEmpty() && !m_pLogger.IsNull()) {
                    m_pLogger->Log(m_logLevel, sValue);
                }
            }

            void LoggerTextWriter::Write(int iValue) {
                Write(DotNetDupe::System::String::Format("{0}", iValue));
            }

            void LoggerTextWriter::Write(long long llValue) {
                Write(DotNetDupe::System::String::Format("{0}", llValue));
            }

            void LoggerTextWriter::Write(float fValue) {
                Write(DotNetDupe::System::String::Format("{0}", fValue));
            }

            void LoggerTextWriter::Write(double dValue) {
                Write(DotNetDupe::System::String::Format("{0}", dValue));
            }

            void LoggerTextWriter::WriteLine() {
                Write(DotNetDupe::System::String(""));
            }

            void LoggerTextWriter::WriteLine(bool bValue) {
                Write(bValue);
            }

            void LoggerTextWriter::WriteLine(char chValue) {
                Write(chValue);
            }

            void LoggerTextWriter::WriteLine(const char* pValue) {
                Write(pValue);
            }

            void LoggerTextWriter::WriteLine(const DotNetDupe::System::String& sValue) {
                Write(sValue);
            }

            void LoggerTextWriter::WriteLine(int iValue) {
                Write(iValue);
            }

            void LoggerTextWriter::WriteLine(long long llValue) {
                Write(llValue);
            }

            void LoggerTextWriter::WriteLine(float fValue) {
                Write(fValue);
            }

            void LoggerTextWriter::WriteLine(double dValue) {
                Write(dValue);
            }

        }
    }
}

Generated by OpenCppCoverage (Version: 0.9.9.0)