The standard MagAOX log manager, used for both process logs and telemetry streams. More...
#include <logManager.hpp>
Public Types | |
typedef _parentT | parentT |
typedef _logFileT | logFileT |
Public Member Functions | |
logManager () | |
Default c'tor. | |
~logManager () | |
Destructor. | |
void | parent (parentT *p) |
Set the logger parent. | |
parentT * | parent () |
Get the logger parent. | |
int | logShutdown (bool ls) |
Set a new value of logShutdown. | |
bool | logShutdown () |
Get the current value of logShutdown. | |
int | writePause (const unsigned long &wp) |
Set a new value of writePause. | |
unsigned long | writePause () |
Get the current value of writePause. | |
int | logLevel (logPrioT newLev) |
Set a new value of logLevel. | |
logPrioT | logLevel () |
Get the current value of logLevel. | |
int | logThreadPrio (int newPrio) |
Set a new value of logThreadPrio. | |
int | logThreadPrio () |
Get the current value of logThreadPrio. | |
bool | logThreadRunning () |
Get status of the log thread running flag. | |
int | setupConfig (mx::app::appConfigurator &config) |
Setup an application configurator for the logger section. | |
int | loadConfig (mx::app::appConfigurator &config) |
Load the logger section from an application configurator. | |
int | logThreadStart () |
Start the logger thread. | |
void | logThreadExec () |
Execute the logger thread. | |
template<typename logT > | |
void | log (const typename logT::messageT &msg, logPrioT level=logPrio::LOG_DEFAULT) |
Make a log entry, including a message. | |
template<typename logT > | |
void | log (timespecX &ts, const typename logT::messageT &msg, logPrioT level=logPrio::LOG_DEFAULT) |
Make a log entry, including a message. | |
template<typename logT > | |
void | log (logPrioT level=logPrio::LOG_DEFAULT) |
Make a log entry with no message. | |
template<typename logT > | |
void | log (timespecX &ts, logPrioT level=logPrio::LOG_DEFAULT) |
Make a log entry with no message. | |
Static Public Member Functions | |
static void | _logThreadStart (logManager *l) |
Thread starter, called by logThreadStart on thread construction. Calls logThreadExec. | |
template<typename logT > | |
static int | createLog (bufferPtrT &logBuffer, const typename logT::messageT &msg, const logPrioT &level) |
Create a log formatted log entry, filling in a buffer. | |
template<typename logT > | |
static int | createLog (bufferPtrT &logBuffer, const timespecX &ts, const typename logT::messageT &msg, const logPrioT &level) |
Create a log formatted log entry, filling in a buffer. | |
Public Attributes | |
std::string | m_configSection {"logger"} |
The configuration files section name. Default is logger . | |
logPrioT | m_logLevel {logPrio::LOG_INFO} |
The minimum log level to actually record. Logs with level below this are rejected. Default is INFO. Configure with logger.logLevel. | |
Protected Attributes | |
parentT * | m_parent {nullptr} |
std::list< bufferPtrT > | m_logQueue |
Log entries are stored here, and writen to the file by the log thread. | |
std::thread | m_logThread |
A separate thread for actually writing to the file. | |
std::mutex | m_qMutex |
Mutex for accessing the m_logQueue. | |
bool | m_logShutdown {false} |
Flag to signal the log thread to shutdown. | |
unsigned long | m_writePause {MAGAOX_default_writePause} |
Time, in nanoseconds, to pause between successive batch writes to the file. Default is 1e9. Configure with logger.writePause. | |
int | m_logThreadPrio {0} |
bool | m_logThreadRunning {false} |
The standard MagAOX log manager, used for both process logs and telemetry streams.
Manages the formatting and queueing of the log entries.
A log entry is made using one of the standard log types. These are formatted into a binary stream and stored in a std::list. This occurs in the calling thread. The insertion into the list is mutex-ed, so it is safe to make logs from different threads concurrently.
Write-to-disk occurs in a separate thread, which is normally set to the lowest priority so as not to interfere with higher-priority tasks. The log thread cycles through pending log entries in the list, dispatching them to the logFile.
The template parameter logFileT is one of the logFile types, which is used to actually write to disk.
Example:
logFileT | a logFile type with a writeLog method. |
Definition at line 73 of file logManager.hpp.
typedef _logFileT MagAOX::logger::logManager< _parentT, _logFileT >::logFileT |
Definition at line 76 of file logManager.hpp.
typedef _parentT MagAOX::logger::logManager< _parentT, _logFileT >::parentT |
Definition at line 75 of file logManager.hpp.
MagAOX::logger::logManager< parentT, logFileT >::logManager | ( | ) |
Default c'tor.
Definition at line 267 of file logManager.hpp.
MagAOX::logger::logManager< parentT, logFileT >::~logManager | ( | ) |
Destructor.
Definition at line 272 of file logManager.hpp.
|
static |
Thread starter, called by logThreadStart on thread construction. Calls logThreadExec.
[in] | l | a pointer to a logger instance (normally this) |
Definition at line 418 of file logManager.hpp.
References MagAOX::logger::logManager< _parentT, _logFileT >::logThreadExec().
|
static |
Create a log formatted log entry, filling in a buffer.
This version has the timestamp provided.
logT | is a log entry type |
[out] | logBuffer | a shared_ptr<logBuffer>, which will be allocated and populated with the log entry |
[in] | ts | the timestamp of this log entry. |
[in] | msg | the message to log (could be of type emptyMessage) |
[in] | level | the level (verbosity) of this log |
Definition at line 544 of file logManager.hpp.
|
static |
Create a log formatted log entry, filling in a buffer.
This is where the timestamp of the log entry is set.
logT | is a log entry type |
[out] | logBuffer | a shared_ptr<logBuffer>, which will be allocated and populated with the log entry |
[in] | msg | the message to log (could be of type emptyMessage) |
[in] | level | the level (verbosity) of this log |
Definition at line 530 of file logManager.hpp.
References flatlogs::timespecX::gettime().
int MagAOX::logger::logManager< parentT, logFileT >::loadConfig | ( | mx::app::appConfigurator & | config | ) |
Load the logger section from an application configurator.
[in] | config | an application configuration from which to load values |
Definition at line 376 of file logManager.hpp.
References flatlogs::logPrio::LOG_DEFAULT, flatlogs::logPrio::LOG_INFO, flatlogs::logPrio::LOG_UNKNOWN, and flatlogs::logLevelFromString().
void MagAOX::logger::logManager< parentT, logFileT >::log | ( | const typename logT::messageT & | msg, |
logPrioT | level = logPrio::LOG_DEFAULT |
||
) |
Make a log entry, including a message.
logT | is a log entry type |
[in] | msg | the message to log |
[in] | level | [optional] the log level. The default is used if not specified. |
Definition at line 555 of file logManager.hpp.
References flatlogs::logPrio::LOG_DEFAULT.
Referenced by visxCtrl.xapp.VisX::_gather_metadata(), visxCtrl.xapp.VisX::_init_properties(), visxCtrl.xapp.VisX::cancel_exposure(), visxCtrl.xapp.VisX::finalize_exposure(), camtipSR.core.camtipSR::fit_SR_EE(), camtipSR.core.camtipSR::fit_SR_gauss(), camtipSR.core.camtipSR::grab_img(), camtipSR.core.camtipSR::grab_stack(), corAlign.corAlign::handle_closed_loop(), adcCtrl.adcCtrl::handle_ctrl_mtx(), visxCtrl.xapp.VisX::handle_expose(), visxCtrl.xapp.VisX::handle_exptime(), adcCtrl.adcCtrl::handle_gain(), visxCtrl.xapp.VisX::handle_gain(), adcCtrl.adcCtrl::handle_knife_edge(), adcCtrl.adcCtrl::handle_knife_edge_findzero(), adcCtrl.adcCtrl::handle_labmode(), adcCtrl.adcCtrl::handle_n_avg(), camtipSR.core.camtipSR::handle_n_avg(), corAlign.corAlign::handle_n_avg(), camtipSR.core.camtipSR::handle_n_jitter(), adcCtrl.adcCtrl::handle_no_measurements(), adcCtrl.adcCtrl::handle_offset(), audibleAlerts.core.AudibleAlerts::handle_personality_switch(), corAlign.corAlign::handle_ref_x(), corAlign.corAlign::handle_ref_y(), adcCtrl.adcCtrl::handle_reset(), audibleAlerts.core.AudibleAlerts::handle_soundboard_switch(), audibleAlerts.core.AudibleAlerts::handle_speech_request(), audibleAlerts.core.AudibleAlerts::handle_speech_text(), adcCtrl.adcCtrl::handle_state(), corAlign.corAlign::handle_state(), visxCtrl.xapp.VisX::handle_temp_ccd(), dbIngest.dbIngest::ingest_line(), dbIngest.dbIngest::launch_followers(), audibleAlerts.core.AudibleAlerts::load_personality(), adcCtrl.adcCtrl::loop(), audibleAlerts.core.AudibleAlerts::loop(), corAlign.corAlign::loop(), dbIngest.dbIngest::loop(), visxCtrl.xapp.VisX::loop(), corAlign.corAlign::measure_fpm_mask_shift(), audibleAlerts.core.AudibleAlerts::preprocess(), MagAOX::app::sshDigger::processAutoSSHLog(), MagAOX::app::xindiserver::processISLog(), MagAOX::app::sshDigger::processSSHLog(), audibleAlerts.core.AudibleAlerts::reaction_handler(), dbIngest.dbIngest::refresh_properties(), visxCtrl.xapp.VisX::refresh_properties(), dbIngest.dbIngest::rescan_files(), adcCtrl.adcCtrl::send_command(), adcCtrl.adcCtrl::setup(), camtipSR.core.camtipSR::setup(), corAlign.corAlign::setup(), efcControl.efcControl::setup(), visxCtrl.xapp.VisX::subscribe_to_other_devices(), adcCtrl.adcCtrl::transition_to_idle(), camtipSR.core.camtipSR::transition_to_idle(), corAlign.corAlign::transition_to_idle(), adcCtrl.adcCtrl::update_wavelength(), and audibleAlerts.core.AudibleAlerts::walkup_handler().
void MagAOX::logger::logManager< parentT, logFileT >::log | ( | logPrioT | level = logPrio::LOG_DEFAULT | ) |
Make a log entry with no message.
logT | is a log entry type |
[in] | level | [optional] the log level. The default is used if not specified. |
Definition at line 599 of file logManager.hpp.
Referenced by visxCtrl.xapp.VisX::_gather_metadata(), visxCtrl.xapp.VisX::_init_properties(), visxCtrl.xapp.VisX::cancel_exposure(), visxCtrl.xapp.VisX::finalize_exposure(), camtipSR.core.camtipSR::fit_SR_EE(), camtipSR.core.camtipSR::fit_SR_gauss(), camtipSR.core.camtipSR::grab_img(), camtipSR.core.camtipSR::grab_stack(), corAlign.corAlign::handle_closed_loop(), adcCtrl.adcCtrl::handle_ctrl_mtx(), visxCtrl.xapp.VisX::handle_expose(), visxCtrl.xapp.VisX::handle_exptime(), adcCtrl.adcCtrl::handle_gain(), visxCtrl.xapp.VisX::handle_gain(), adcCtrl.adcCtrl::handle_knife_edge(), adcCtrl.adcCtrl::handle_knife_edge_findzero(), adcCtrl.adcCtrl::handle_labmode(), adcCtrl.adcCtrl::handle_n_avg(), camtipSR.core.camtipSR::handle_n_avg(), corAlign.corAlign::handle_n_avg(), camtipSR.core.camtipSR::handle_n_jitter(), adcCtrl.adcCtrl::handle_no_measurements(), adcCtrl.adcCtrl::handle_offset(), audibleAlerts.core.AudibleAlerts::handle_personality_switch(), corAlign.corAlign::handle_ref_x(), corAlign.corAlign::handle_ref_y(), adcCtrl.adcCtrl::handle_reset(), audibleAlerts.core.AudibleAlerts::handle_soundboard_switch(), audibleAlerts.core.AudibleAlerts::handle_speech_request(), audibleAlerts.core.AudibleAlerts::handle_speech_text(), adcCtrl.adcCtrl::handle_state(), corAlign.corAlign::handle_state(), visxCtrl.xapp.VisX::handle_temp_ccd(), dbIngest.dbIngest::ingest_line(), dbIngest.dbIngest::launch_followers(), audibleAlerts.core.AudibleAlerts::load_personality(), adcCtrl.adcCtrl::loop(), audibleAlerts.core.AudibleAlerts::loop(), corAlign.corAlign::loop(), dbIngest.dbIngest::loop(), visxCtrl.xapp.VisX::loop(), corAlign.corAlign::measure_fpm_mask_shift(), audibleAlerts.core.AudibleAlerts::preprocess(), audibleAlerts.core.AudibleAlerts::reaction_handler(), dbIngest.dbIngest::refresh_properties(), visxCtrl.xapp.VisX::refresh_properties(), dbIngest.dbIngest::rescan_files(), adcCtrl.adcCtrl::send_command(), adcCtrl.adcCtrl::setup(), camtipSR.core.camtipSR::setup(), corAlign.corAlign::setup(), efcControl.efcControl::setup(), visxCtrl.xapp.VisX::subscribe_to_other_devices(), adcCtrl.adcCtrl::transition_to_idle(), camtipSR.core.camtipSR::transition_to_idle(), corAlign.corAlign::transition_to_idle(), adcCtrl.adcCtrl::update_wavelength(), and audibleAlerts.core.AudibleAlerts::walkup_handler().
void MagAOX::logger::logManager< parentT, logFileT >::log | ( | timespecX & | ts, |
const typename logT::messageT & | msg, | ||
logPrioT | level = logPrio::LOG_DEFAULT |
||
) |
Make a log entry, including a message.
logT | is a log entry type |
[in] | ts | the timestamp of the log entry |
[in] | msg | the message to log |
[in] | level | [optional] the log level. The default is used if not specified. |
Definition at line 577 of file logManager.hpp.
References flatlogs::logPrio::LOG_DEFAULT.
Referenced by visxCtrl.xapp.VisX::_gather_metadata(), visxCtrl.xapp.VisX::_init_properties(), visxCtrl.xapp.VisX::cancel_exposure(), visxCtrl.xapp.VisX::finalize_exposure(), camtipSR.core.camtipSR::fit_SR_EE(), camtipSR.core.camtipSR::fit_SR_gauss(), camtipSR.core.camtipSR::grab_img(), camtipSR.core.camtipSR::grab_stack(), corAlign.corAlign::handle_closed_loop(), adcCtrl.adcCtrl::handle_ctrl_mtx(), visxCtrl.xapp.VisX::handle_expose(), visxCtrl.xapp.VisX::handle_exptime(), adcCtrl.adcCtrl::handle_gain(), visxCtrl.xapp.VisX::handle_gain(), adcCtrl.adcCtrl::handle_knife_edge(), adcCtrl.adcCtrl::handle_knife_edge_findzero(), adcCtrl.adcCtrl::handle_labmode(), adcCtrl.adcCtrl::handle_n_avg(), camtipSR.core.camtipSR::handle_n_avg(), corAlign.corAlign::handle_n_avg(), camtipSR.core.camtipSR::handle_n_jitter(), adcCtrl.adcCtrl::handle_no_measurements(), adcCtrl.adcCtrl::handle_offset(), audibleAlerts.core.AudibleAlerts::handle_personality_switch(), corAlign.corAlign::handle_ref_x(), corAlign.corAlign::handle_ref_y(), adcCtrl.adcCtrl::handle_reset(), audibleAlerts.core.AudibleAlerts::handle_soundboard_switch(), audibleAlerts.core.AudibleAlerts::handle_speech_request(), audibleAlerts.core.AudibleAlerts::handle_speech_text(), adcCtrl.adcCtrl::handle_state(), corAlign.corAlign::handle_state(), visxCtrl.xapp.VisX::handle_temp_ccd(), dbIngest.dbIngest::ingest_line(), dbIngest.dbIngest::launch_followers(), audibleAlerts.core.AudibleAlerts::load_personality(), adcCtrl.adcCtrl::loop(), audibleAlerts.core.AudibleAlerts::loop(), corAlign.corAlign::loop(), dbIngest.dbIngest::loop(), visxCtrl.xapp.VisX::loop(), corAlign.corAlign::measure_fpm_mask_shift(), audibleAlerts.core.AudibleAlerts::preprocess(), audibleAlerts.core.AudibleAlerts::reaction_handler(), dbIngest.dbIngest::refresh_properties(), visxCtrl.xapp.VisX::refresh_properties(), dbIngest.dbIngest::rescan_files(), adcCtrl.adcCtrl::send_command(), adcCtrl.adcCtrl::setup(), camtipSR.core.camtipSR::setup(), corAlign.corAlign::setup(), efcControl.efcControl::setup(), visxCtrl.xapp.VisX::subscribe_to_other_devices(), adcCtrl.adcCtrl::transition_to_idle(), camtipSR.core.camtipSR::transition_to_idle(), corAlign.corAlign::transition_to_idle(), adcCtrl.adcCtrl::update_wavelength(), and audibleAlerts.core.AudibleAlerts::walkup_handler().
void MagAOX::logger::logManager< parentT, logFileT >::log | ( | timespecX & | ts, |
logPrioT | level = logPrio::LOG_DEFAULT |
||
) |
Make a log entry with no message.
logT | is a log entry type |
[in] | ts | the timestamp of the log entry |
[in] | level | [optional] the log level. The default is used if not specified. |
Definition at line 606 of file logManager.hpp.
Referenced by visxCtrl.xapp.VisX::_gather_metadata(), visxCtrl.xapp.VisX::_init_properties(), visxCtrl.xapp.VisX::cancel_exposure(), visxCtrl.xapp.VisX::finalize_exposure(), camtipSR.core.camtipSR::fit_SR_EE(), camtipSR.core.camtipSR::fit_SR_gauss(), camtipSR.core.camtipSR::grab_img(), camtipSR.core.camtipSR::grab_stack(), corAlign.corAlign::handle_closed_loop(), adcCtrl.adcCtrl::handle_ctrl_mtx(), visxCtrl.xapp.VisX::handle_expose(), visxCtrl.xapp.VisX::handle_exptime(), adcCtrl.adcCtrl::handle_gain(), visxCtrl.xapp.VisX::handle_gain(), adcCtrl.adcCtrl::handle_knife_edge(), adcCtrl.adcCtrl::handle_knife_edge_findzero(), adcCtrl.adcCtrl::handle_labmode(), adcCtrl.adcCtrl::handle_n_avg(), camtipSR.core.camtipSR::handle_n_avg(), corAlign.corAlign::handle_n_avg(), camtipSR.core.camtipSR::handle_n_jitter(), adcCtrl.adcCtrl::handle_no_measurements(), adcCtrl.adcCtrl::handle_offset(), audibleAlerts.core.AudibleAlerts::handle_personality_switch(), corAlign.corAlign::handle_ref_x(), corAlign.corAlign::handle_ref_y(), adcCtrl.adcCtrl::handle_reset(), audibleAlerts.core.AudibleAlerts::handle_soundboard_switch(), audibleAlerts.core.AudibleAlerts::handle_speech_request(), audibleAlerts.core.AudibleAlerts::handle_speech_text(), adcCtrl.adcCtrl::handle_state(), corAlign.corAlign::handle_state(), visxCtrl.xapp.VisX::handle_temp_ccd(), dbIngest.dbIngest::ingest_line(), dbIngest.dbIngest::launch_followers(), audibleAlerts.core.AudibleAlerts::load_personality(), adcCtrl.adcCtrl::loop(), audibleAlerts.core.AudibleAlerts::loop(), corAlign.corAlign::loop(), dbIngest.dbIngest::loop(), visxCtrl.xapp.VisX::loop(), corAlign.corAlign::measure_fpm_mask_shift(), audibleAlerts.core.AudibleAlerts::preprocess(), audibleAlerts.core.AudibleAlerts::reaction_handler(), dbIngest.dbIngest::refresh_properties(), visxCtrl.xapp.VisX::refresh_properties(), dbIngest.dbIngest::rescan_files(), adcCtrl.adcCtrl::send_command(), adcCtrl.adcCtrl::setup(), camtipSR.core.camtipSR::setup(), corAlign.corAlign::setup(), efcControl.efcControl::setup(), visxCtrl.xapp.VisX::subscribe_to_other_devices(), adcCtrl.adcCtrl::transition_to_idle(), camtipSR.core.camtipSR::transition_to_idle(), corAlign.corAlign::transition_to_idle(), adcCtrl.adcCtrl::update_wavelength(), and audibleAlerts.core.AudibleAlerts::walkup_handler().
logPrioT MagAOX::logger::logManager< parentT, logFileT >::logLevel | ( | ) |
Get the current value of logLevel.
Definition at line 335 of file logManager.hpp.
int MagAOX::logger::logManager< parentT, logFileT >::logLevel | ( | logPrioT | newLev | ) |
Set a new value of logLevel.
Updates m_logLevel with new value. Will return an error and take no actions if the argument is outside the range of the logLevels enum.
[in] | newLev | the new value of logLevel |
Definition at line 325 of file logManager.hpp.
Referenced by MagAOX::app::sshDigger::execTunnel(), and MagAOX::app::xindiserver::forkIndiserver().
bool MagAOX::logger::logManager< parentT, logFileT >::logShutdown | ( | ) |
Get the current value of logShutdown.
Definition at line 303 of file logManager.hpp.
int MagAOX::logger::logManager< parentT, logFileT >::logShutdown | ( | bool | ls | ) |
Set a new value of logShutdown.
Updates m_logShutdown with new value.
Definition at line 296 of file logManager.hpp.
void MagAOX::logger::logManager< parentT, logFileT >::logThreadExec | ( | ) |
Execute the logger thread.
fsyncgate
impacts us Definition at line 464 of file logManager.hpp.
References flatlogs::logPrio::LOG_NOTICE, flatlogs::logHeader::logLevel(), and MagAOX::logger::logStdFormat().
Referenced by MagAOX::logger::logManager< _parentT, _logFileT >::_logThreadStart().
int MagAOX::logger::logManager< parentT, logFileT >::logThreadPrio | ( | ) |
Get the current value of logThreadPrio.
Definition at line 351 of file logManager.hpp.
int MagAOX::logger::logManager< parentT, logFileT >::logThreadPrio | ( | int | newPrio | ) |
Set a new value of logThreadPrio.
Updates m_logThreadPrio with new value. If the argument is < 0, this sets m_logThreadPrio to 0. Will not set > 98, and returns -1 with no changes in this case.
[in] | newPrio | the new value of logThreadPrio |
Definition at line 341 of file logManager.hpp.
bool MagAOX::logger::logManager< parentT, logFileT >::logThreadRunning | ( | ) |
Get status of the log thread running flag.
Definition at line 357 of file logManager.hpp.
int MagAOX::logger::logManager< parentT, logFileT >::logThreadStart | ( | ) |
Start the logger thread.
Definition at line 424 of file logManager.hpp.
parentT * MagAOX::logger::logManager< parentT, logFileT >::parent | ( | ) |
Get the logger parent.
Returns a point to the parent object.
Definition at line 290 of file logManager.hpp.
void MagAOX::logger::logManager< parentT, logFileT >::parent | ( | parentT * | p | ) |
Set the logger parent.
The parent is used for interactive presentation of log messages
[in] | p | pointer to the parent object |
Definition at line 284 of file logManager.hpp.
int MagAOX::logger::logManager< parentT, logFileT >::setupConfig | ( | mx::app::appConfigurator & | config | ) |
Setup an application configurator for the logger section.
[in] | config | an application configuration to setup |
Definition at line 363 of file logManager.hpp.
unsigned long MagAOX::logger::logManager< parentT, logFileT >::writePause | ( | ) |
Get the current value of writePause.
Definition at line 319 of file logManager.hpp.
Set a new value of writePause.
Updates m_writePause with new value.
[in] | wp | the new value of writePause |
Definition at line 309 of file logManager.hpp.
std::string MagAOX::logger::logManager< _parentT, _logFileT >::m_configSection {"logger"} |
The configuration files section name. Default is logger
.
Definition at line 84 of file logManager.hpp.
logPrioT MagAOX::logger::logManager< _parentT, _logFileT >::m_logLevel {logPrio::LOG_INFO} |
The minimum log level to actually record. Logs with level below this are rejected. Default is INFO. Configure with logger.logLevel.
Definition at line 97 of file logManager.hpp.
|
protected |
Log entries are stored here, and writen to the file by the log thread.
Definition at line 87 of file logManager.hpp.
|
protected |
Flag to signal the log thread to shutdown.
Definition at line 92 of file logManager.hpp.
|
protected |
A separate thread for actually writing to the file.
Definition at line 89 of file logManager.hpp.
|
protected |
Definition at line 100 of file logManager.hpp.
|
protected |
Definition at line 102 of file logManager.hpp.
|
protected |
Definition at line 79 of file logManager.hpp.
|
protected |
Mutex for accessing the m_logQueue.
Definition at line 90 of file logManager.hpp.
|
protected |
Time, in nanoseconds, to pause between successive batch writes to the file. Default is 1e9. Configure with logger.writePause.
Definition at line 94 of file logManager.hpp.