OpenM++ runtime library (libopenm)
openm::Log Class Reference

log implementation class: log to console and into log files. More...

Inheritance diagram for openm::Log:
Collaboration diagram for openm::Log:

Public Member Functions

 Log (bool i_logToConsole=false, const char *i_basePath="openm.log", bool i_logToFile=false, bool i_useTimeStamp=false, bool i_usePidStamp=false)
 create log instance. More...
 
 ~Log (void) noexcept
 cleanup log resources
 
void init (bool i_logToConsole, const char *i_basePath, bool i_logToFile, bool i_useTimeStamp=false, bool i_usePidStamp=false, bool i_noMsgTime=false, bool i_isLogSql=false) noexcept
 re-initialize log file name(s) and other log settings. More...
 
const string lastLogPath (void) noexcept override
 if log to file enabled return "last" log file path. More...
 
const string stampedLogPath (void) noexcept override
 if log to "stamped" file enabled return "stamped" log file path. More...
 
const string getMessage (const char *i_sourceMsg) noexcept override
 get language-specific message by source non-translated message
 
const list< string > getLanguages (void) noexcept override
 get list of language name for the messages, eg: (en-ca, en)
 
const unordered_map< string, string > getLanguageMessages (void) noexcept override
 get copy of language-specific messages
 
void swapLanguageMessages (const list< string > &i_langLst, unordered_map< string, string > &io_msgMap) noexcept override
 set language-specific messages and update list of languages
 
void logMsg (const char *i_msg, const char *i_extra=NULL) noexcept override
 log message
 
void logFormatted (const char *i_format,...) noexcept override
 log message formatted with vsnprintf()
 
void logErr (const exception &i_ex, const char *i_msg=nullptr) noexcept
 log exception
 
void logSql (const char *i_sql) noexcept
 log sql query
 
- Public Member Functions inherited from openm::LogBase
 LogBase (bool i_logToConsole, const char *i_basePath, bool i_logToFile, bool i_useTimeStamp, bool i_usePidStamp, bool i_noMsgTime)
 create log instance. More...
 
 ~LogBase (void) noexcept
 cleanup log resources
 
const string timeStamp (void) noexcept override
 return timestamp part of log file name: 2012_08_17_16_04_59_148. More...
 
void init (bool i_logToConsole, const char *i_basePath, bool i_logToFile, bool i_useTimeStamp=false, bool i_usePidStamp=false, bool i_noMsgTime=false) noexcept
 re-initialize log file name(s) and other log settings. More...
 

Additional Inherited Members

- Protected Member Functions inherited from openm::LogBase
void doLogMsg (const char *i_msg, const char *i_extra) noexcept
 implement log message: log to console and log files
 
bool logFileCreate (const string &i_path) noexcept
 
bool logToConsole (const chrono::system_clock::time_point &i_msgTime, const char *i_msg, const char *i_extra=nullptr) noexcept
 
void writeToLog (ostream &i_ost, const chrono::system_clock::time_point &i_msgTime, const char *i_msg, const char *i_extra=nullptr)
 
- Protected Attributes inherited from openm::LogBase
recursive_mutex theMutex
 
bool isConsoleEnabled
 
bool isLastEnabled
 
bool isLastCreated
 
bool isStampedEnabled
 
bool isStampedCreated
 
string tsPart
 
string pidPart
 
string lastPath
 
string stampedPath
 
bool isNoMsgTime
 
char msgBuffer [msgBufferSize+1]
 
- Static Protected Attributes inherited from openm::LogBase
static const size_t msgBufferSize = 32768
 

Detailed Description

log implementation class: log to console and into log files.

log can be enabled/disabled for 3 independent streams:
console - cout stream
"last run" file - log file with specified name, truncated on every model run
"stamped" file - log file with unique name, created for every model run

"stamped" name produced from "last run" name by adding time-stamp and pid-stamp, i.e.:
modelOne.log => modelOne.2012_08_17_16_04_59_148.1234.log

Constructor & Destructor Documentation

◆ Log()

Log::Log ( bool  i_logToConsole = false,
const char *  i_basePath = "openm.log",
bool  i_logToFile = false,
bool  i_useTimeStamp = false,
bool  i_usePidStamp = false 
)

create log instance.

Parameters
[in]i_logToConsoleif true then log to console
[in]i_basePathpath to "last" log file, if NULL or empty "" then no log file
[in]i_logToFileif true then enable log to "last" file
[in]i_useTimeStampif true then use timestamp suffix in "stamped" file name
[in]i_usePidStampif true then use PID suffix in "stamped" file name

Member Function Documentation

◆ init()

void Log::init ( bool  i_logToConsole,
const char *  i_basePath,
bool  i_logToFile,
bool  i_useTimeStamp = false,
bool  i_usePidStamp = false,
bool  i_noMsgTime = false,
bool  i_isLogSql = false 
)
virtualnoexcept

re-initialize log file name(s) and other log settings.

Parameters
[in]i_logToConsoleif true then log to console
[in]i_basePathpath to "last" log file, if NULL or empty "" then no log file
[in]i_logToFileif true then enable log to "last" file
[in]i_useTimeStampif true then use timestamp suffix in "stamped" file name
[in]i_usePidStampif true then use PID suffix in "stamped" file name
[in]i_noMsgTimeif true then not prefix log messages with date-time
[in]i_isNoMsgTimeif true then not prefix log messgaes with date-time
[in]i_isLogSqlif true then log SQL into log file

Implements openm::ILog.

◆ lastLogPath()

const string Log::lastLogPath ( void  )
overridevirtualnoexcept

if log to file enabled return "last" log file path.

Implements openm::ILog.

◆ stampedLogPath()

const string Log::stampedLogPath ( void  )
overridevirtualnoexcept

if log to "stamped" file enabled return "stamped" log file path.

Implements openm::ILog.


The documentation for this class was generated from the following files: