21xrx.com
2025-03-29 18:08:49 Saturday
文章检索 我的文章 写文章
使用C++中的clog打印日志
2023-07-04 04:49:29 深夜i     16     0
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输出日志可以方便地记录代码执行情况,极大地方便了调试的过程。开发者可以根据实际需要,选择输出到终端或文件中,还可以设置日志级别,以便后续分析。

  
  

评论区

请求出错了