1 //===-- MICmnLogMediumFile.h ------------------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
13 #include "MICmnBase.h"
15 #include "MIUtilDateTimeStd.h"
16 #include "MIUtilFileStd.h"
17 #include "MIUtilString.h"
20 //============================================================================
21 // Details: MI common code implementation class. Logs application fn
23 // error messages to a file. Used as part of the CMICmnLog Logger
24 // system. When instantiated *this object is register with the Logger
25 // which the Logger when given data to write to registered medium comes
29 class CMICmnLogMediumFile : public CMICmnBase, public CMICmnLog::IMedium {
32 static CMICmnLogMediumFile &Instance();
36 bool SetHeaderTxt(const CMIUtilString &vText);
37 bool SetVerbosity(const MIuint veType);
38 MIuint GetVerbosity() const;
39 const CMIUtilString &GetFileName() const;
40 const CMIUtilString &GetFileNamePath() const;
42 bool IsFileExist() const;
43 const CMIUtilString &GetLineReturn() const;
44 bool SetDirectory(const CMIUtilString &vPath);
49 /* dtor */ ~CMICmnLogMediumFile() override;
50 // From CMICmnLog::IMedium
51 bool Initialize() override;
52 const CMIUtilString &GetName() const override;
53 bool Write(const CMIUtilString &vData,
54 const CMICmnLog::ELogVerbosity veType) override;
55 const CMIUtilString &GetError() const override;
56 bool Shutdown() override;
60 /* ctor */ CMICmnLogMediumFile();
61 /* ctor */ CMICmnLogMediumFile(const CMICmnLogMediumFile &);
62 void operator=(const CMICmnLogMediumFile &);
64 bool FileWriteEnglish(const CMIUtilString &vData);
65 bool FileFormFileNamePath();
66 CMIUtilString MassagedData(const CMIUtilString &vData,
67 const CMICmnLog::ELogVerbosity veType);
68 bool FileWriteHeader();
69 char ConvertLogVerbosityTypeToId(const CMICmnLog::ELogVerbosity veType) const;
70 CMIUtilString ConvertCr(const CMIUtilString &vData) const;
74 const CMIUtilString m_constThisMediumName;
75 const CMIUtilString m_constMediumFileNameFormat;
77 CMIUtilString m_strMediumFileName;
78 CMIUtilString m_strMediumFileDirectory;
79 CMIUtilString m_fileNamePath;
80 MIuint m_eVerbosityType;
81 CMIUtilString m_strDate;
82 CMIUtilString m_fileHeaderTxt;
83 CMIUtilFileStd m_file;
84 CMIUtilDateTimeStd m_dateTime;