Library: Input/output
A predefined stream that controls output to a stream buffer associated with the object stderr declared in <cstdio>
#include <iostream> namespace std { extern ostream clog; }
The object clog controls output to a stream buffer associated with the object stderr declared in <cstdio>. The difference between clog and cerr is that clog is buffered but cerr is not. Therefore, commands like clog << "ERROR !!"; and fprintf(stderr,"ERROR !!"); are not synchronized.
The formatting is done through member functions or manipulators. See cout or basic_ostream for details.
clog can be used to redirect some of the errors to another recipient. For example, you might want to redirect them to a file named my_err, as in:
ofstream out("my_err"); if ( out ) clog.rdbuf(out.rdbuf()); else cerr << "Error while opening the file" << endl;
Then when you are doing something like:
clog << "error number x";
the error message is output to the file my_err. Obviously, you can use the same scheme to redirect clog to other devices.
basic_ostream, basic_iostream, basic_filebuf, cout, cin, cerr, wcin, wcout, wcerr, wclog, ios_base, basic_ios
ISO/IEC 14882:1998 -- International Standard for Information Systems --Programming Language C++, Section 27.3.1