1 //===-- MICmnLogMediumFile.h ------------------------------------*- C++ -*-===//
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
12 #include "MICmnBase.h"
14 #include "MIUtilDateTimeStd.h"
15 #include "MIUtilFileStd.h"
16 #include "MIUtilString.h"
19 //============================================================================
20 // Details: MI common code implementation class. Logs application fn
22 // error messages to a file. Used as part of the CMICmnLog Logger
23 // system. When instantiated *this object is register with the Logger
24 // which the Logger when given data to write to registered medium comes
28 class CMICmnLogMediumFile : public CMICmnBase, public CMICmnLog::IMedium {
31 static CMICmnLogMediumFile &Instance();
35 bool SetHeaderTxt(const CMIUtilString &vText);
36 bool SetVerbosity(const MIuint veType);
37 MIuint GetVerbosity() const;
38 const CMIUtilString &GetFileName() const;
39 const CMIUtilString &GetFileNamePath() const;
41 bool IsFileExist() const;
42 const CMIUtilString &GetLineReturn() const;
43 bool SetDirectory(const CMIUtilString &vPath);
48 /* dtor */ ~CMICmnLogMediumFile() override;
49 // From CMICmnLog::IMedium
50 bool Initialize() override;
51 const CMIUtilString &GetName() const override;
52 bool Write(const CMIUtilString &vData,
53 const CMICmnLog::ELogVerbosity veType) override;
54 const CMIUtilString &GetError() const override;
55 bool Shutdown() override;
59 /* ctor */ CMICmnLogMediumFile();
60 /* ctor */ CMICmnLogMediumFile(const CMICmnLogMediumFile &);
61 void operator=(const CMICmnLogMediumFile &);
63 bool FileWriteEnglish(const CMIUtilString &vData);
64 bool FileFormFileNamePath();
65 CMIUtilString MassagedData(const CMIUtilString &vData,
66 const CMICmnLog::ELogVerbosity veType);
67 bool FileWriteHeader();
68 char ConvertLogVerbosityTypeToId(const CMICmnLog::ELogVerbosity veType) const;
69 CMIUtilString ConvertCr(const CMIUtilString &vData) const;
73 const CMIUtilString m_constThisMediumName;
74 const CMIUtilString m_constMediumFileNameFormat;
76 CMIUtilString m_strMediumFileName;
77 CMIUtilString m_strMediumFileDirectory;
78 CMIUtilString m_fileNamePath;
79 MIuint m_eVerbosityType;
80 CMIUtilString m_strDate;
81 CMIUtilString m_fileHeaderTxt;
82 CMIUtilFileStd m_file;
83 CMIUtilDateTimeStd m_dateTime;