//===-- MICmnLogMediumFile.h ------------------------------------*- C++ -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #pragma once // In-house headers: #include "MICmnBase.h" #include "MICmnLog.h" #include "MIUtilDateTimeStd.h" #include "MIUtilFileStd.h" #include "MIUtilString.h" //++ //============================================================================ // Details: MI common code implementation class. Logs application fn // trace/message/ // error messages to a file. Used as part of the CMICmnLog Logger // system. When instantiated *this object is register with the Logger // which the Logger when given data to write to registered medium comes // *this medium. // Singleton class. //-- class CMICmnLogMediumFile : public CMICmnBase, public CMICmnLog::IMedium { // Statics: public: static CMICmnLogMediumFile &Instance(); // Methods: public: bool SetHeaderTxt(const CMIUtilString &vText); bool SetVerbosity(const MIuint veType); MIuint GetVerbosity() const; const CMIUtilString &GetFileName() const; const CMIUtilString &GetFileNamePath() const; bool IsOk() const; bool IsFileExist() const; const CMIUtilString &GetLineReturn() const; bool SetDirectory(const CMIUtilString &vPath); // Overridden: public: // From CMICmnBase /* dtor */ ~CMICmnLogMediumFile() override; // From CMICmnLog::IMedium bool Initialize() override; const CMIUtilString &GetName() const override; bool Write(const CMIUtilString &vData, const CMICmnLog::ELogVerbosity veType) override; const CMIUtilString &GetError() const override; bool Shutdown() override; // Methods: private: /* ctor */ CMICmnLogMediumFile(); /* ctor */ CMICmnLogMediumFile(const CMICmnLogMediumFile &); void operator=(const CMICmnLogMediumFile &); bool FileWriteEnglish(const CMIUtilString &vData); bool FileFormFileNamePath(); CMIUtilString MassagedData(const CMIUtilString &vData, const CMICmnLog::ELogVerbosity veType); bool FileWriteHeader(); char ConvertLogVerbosityTypeToId(const CMICmnLog::ELogVerbosity veType) const; CMIUtilString ConvertCr(const CMIUtilString &vData) const; // Attributes: private: const CMIUtilString m_constThisMediumName; const CMIUtilString m_constMediumFileNameFormat; // CMIUtilString m_strMediumFileName; CMIUtilString m_strMediumFileDirectory; CMIUtilString m_fileNamePath; MIuint m_eVerbosityType; CMIUtilString m_strDate; CMIUtilString m_fileHeaderTxt; CMIUtilFileStd m_file; CMIUtilDateTimeStd m_dateTime; };