C++ clog 对象

定义和用法

clog 对象用于记录有关程序状态的消息。它的行为与 cout 相同,但可以将输出定向到不同的目标,如日志文件。clogcerr 总是写入相同的目标位置。

有关更详细的用法,请参阅 <iostream> 中的 cout 对象。

虽然 clogcerr 写入相同的目标位置,但 clog 是带缓冲的,而 cerr 不是。带缓冲的输出会暂时将输出存储在变量中,直到满足某些条件时才写入目标位置。带缓冲的输出更高效,因为它们对文件执行的写入操作更少。如果消息很重要,请使用 cerr,否则如果程序崩溃,这些消息可能会丢失。

注意:clog 对象在 <iostream> 头文件中定义。

实例

例子 1

使用 clog 对象输出日志消息:

int myNum = 12;

clog << "给定了数字 " << myNum << "\n";

亲自试一试

例子 2

clog 的输出定向到文件而不是控制台:

#include <iostream>
#include <fstream>
using namespace std;

int main() {
  int myNum = 12;

  // 将 "info.log" 设置为日志消息的输出文件
  ofstream log("info.log");
  clog.rdbuf(log.rdbuf());
  
  // 写入日志文件
  clog << "给定了数字 " << myNum << "\n";

  // 关闭文件
  log.close();
  
  return 0;
}