Объект clog
Объект clog представляет собой поток вывода, связанный со стандартным потоком ошибок (stderr), но в отличие от cerr, он использует буферизацию. Это означает, что данные сначала накапливаются в буфере и записываются в целевой поток только при заполнении буфера или принудительной очистке. Объект clog обычно используется для ведения логов и вывода отладочной информации, когда важна производительность, так как буферизация снижает количество операций ввода-вывода. По умолчанию clog связан с потоком ошибок, но может быть перенаправлен. Данный объект не принимает параметров при создании, так как является предопределённым экземпляром класса std::basic_ostream.
Синтаксис
#include <iostream>
clog << value;
Пример
Давайте выведем сообщение об ошибке в поток clog и проверим, что оно появится в консоли:
#include <iostream>
using namespace std;
int main()
{
clog << "Error: something went wrong" << endl;
return 0;
}
Результат выполнения кода:
"Error: something went wrong"
Пример
Давайте сравним поведение clog и cerr при выводе чисел. clog буферизует вывод, поэтому сообщения могут появиться с задержкой, тогда как cerr выводит данные немедленно:
#include <iostream>
using namespace std;
int main()
{
cerr << "This is cerr: " << 123 << endl;
clog << "This is clog: " << 456 << endl;
return 0;
}
Результат выполнения кода (порядок может отличаться из-за буферизации):
"This is cerr: 123"
"This is clog: 456"