It's called "Console", which would be line-buffered anyway. But, it's implemented as std::cout. This might be piped to a logger, as in daemontools or systemd. In this case it will not be a TTY, and log lines should be flushed without too much delay. Let's just flush each message. Let's not introduce a static instance of StreamLogger (flushed by interval timer). That's too stressful to read, because static instances are really annoying to order. Example citation: "Yay, our static destructors are pretty much beyond repair at this point." -- application.cpp. I don't know if there will be any need to optimize logging syscalls. The init script uses `--daemonize`. I think the systemd service should also avoid using the "Console" log after startup (see next commit). The documentation does not warn that the syslog feature is less efficient in system calls than mainlog; deferred flusing does not seem to be a highly prominent feature. There's no cool comment in the code about how much the syscalls were slowing down some use case (or qualifying that this optimization can only eliminate syscalls on platforms with both mutexes and clocks that can work without syscalls).
Icinga 2
Table of Contents
About
Icinga 2 is an open source monitoring system which checks the availability of your network resources, notifies users of outages, and generates performance data for reporting.
Scalable and extensible, Icinga 2 can monitor large, complex environments across multiple locations.
Icinga 2 as monitoring core works best with Icinga Web 2 as web interface.
More information can be found at www.icinga.com and inside the documentation.
Licensing
Icinga 2 and the Icinga 2 documentation are licensed under the terms of the GNU General Public License Version 2, you will find a copy of this license in the COPYING file included in the source package.
In addition, as a special exception, the copyright holders give permission to link the code of portions of this program with the OpenSSL library under certain conditions as described in each individual source file, and distribute linked combinations including the two.
You must obey the GNU General Public License in all respects for all of the code used other than OpenSSL. If you modify file(s) with this exception, you may extend this exception to your version of the file(s), but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version. If you delete this exception statement from all source files in the program, then also delete it here.
Installation
Read the INSTALL.md file for more information about how to install it.
Documentation
The documentation is located in the doc/ directory. The latest documentation is also available on https://docs.icinga.com
Support
Check the project website at https://www.icinga.com for status updates. Join the community channels for questions or ask an Icinga partner for professional support.
Contributing
There are many ways to contribute to Icinga -- whether it be sending patches, testing, reporting bugs, or reviewing and updating the documentation. Every contribution is appreciated!
Please continue reading in the contributing chapter.