holyya.com
2025-09-04 21:49:37 Thursday
登录
文章检索 我的文章 写文章
使用C++中的clog打印日志
2023-07-04 04:49:29 深夜i     --     --
C++ clog 打印日志

在C++编程中,调试是一个不可避免的过程。在调试过程中,往往需要记录代码执行的情况,以便后续分析。这时候使用日志工具就非常有必要了。

C++中提供了一个日志输出工具——clog,它是ostream的一个子类,可以像cout一样使用。使用clog输出日志可以很方便地记录代码执行情况,可以选择记录到终端还是文件中,还可以设置日志级别。

以下是一些使用clog输出日志的示例:

1.输出到终端


#include <iostream>

using namespace std;

int main() {

  clog << "Starting to execute program." << endl;

  clog << "The result of addition is: " << 2 + 3 << endl;

  clog << "Ending execution of program." << endl;

  return 0;

}

2.输出到文件


#include <iostream>

#include <fstream>

using namespace std;

int main() {

  ofstream logFile("log.txt"); // 打开log文件

  clog.rdbuf(logFile.rdbuf()); // 将log输出到文件中

  clog << "Starting to execute program." << endl;

  clog << "The result of addition is: " << 2 + 3 << endl;

  clog << "Ending execution of program." << endl;

  logFile.close(); // 关闭log文件

  return 0;

}

3.设置日志级别


#include <iostream>

using namespace std;

enum LogLevel

  ERROR

;

void log(LogLevel level, const string& message) {

  switch (level) {

    case LogLevel::INFO:

      clog << "[INFO] " << message << endl;

      break;

    case LogLevel::WARNING:

      clog << "[WARNING] " << message << endl;

      break;

    case LogLevel::ERROR:

      clog << "[ERROR] " << message << endl;

      break;

    default:

      break;

  }

}

int main() {

  log(LogLevel::INFO, "Starting to execute program.");

  log(LogLevel::WARNING, "This is a warning message.");

  log(LogLevel::ERROR, "An error occurred.");

  log(LogLevel::INFO, "Ending execution of program.");

  return 0;

}

上述代码中,定义了一个LogLevel枚举类型,用于指定日志级别。log函数接受一个日志级别和一条消息作为参数,根据日志级别的不同,选择输出不同类型的消息。

总之,使用clog输出日志可以方便地记录代码执行情况,极大地方便了调试的过程。开发者可以根据实际需要,选择输出到终端或文件中,还可以设置日志级别,以便后续分析。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复