使用C++写一个日志类
时间: 2023-08-31 20:06:23 浏览: 51
下面是一个简单的 C++ 日志类示例:
```cpp
#include <iostream>
#include <fstream>
#include <string>
#include <ctime>
class Logger {
public:
Logger(const std::string& filename)
: m_file(filename, std::ios::app) {}
void log(const std::string& message) {
std::time_t now = std::time(nullptr);
m_file << std::asctime(std::localtime(&now)) << message << std::endl;
}
private:
std::ofstream m_file;
};
int main() {
Logger logger("log.txt");
logger.log("This is a log message.");
return 0;
}
```
这个示例中,我们定义了一个 `Logger` 类,它接受一个文件名作为构造函数参数。 `log` 函数将一个消息写入文件,该消息包含当前时间和传递给函数的字符串。 运行 `main` 函数将创建一个名为 `log.txt` 的文件并写入一条日志消息。
相关问题
用c++写一个日志程序
好的,我可以回答这个问题。日志程序可以使用 C 语言中的文件操作函数来实现。首先,需要打开一个文件,使用 fopen() 函数来打开一个文件并返回一个文件指针。然后,使用 fprintf() 函数将日志信息写入文件中。最后,使用 fclose() 函数关闭文件。具体实现可以参考以下代码:
```
#include <stdio.h>
#include <time.h>
int main() {
FILE *fp;
time_t now;
struct tm *tm_now;
char filename[100];
char logmsg[100];
// 获取当前时间
now = time(NULL);
tm_now = localtime(&now);
// 构造日志文件名
sprintf(filename, "log_%04d%02d%02d.txt", tm_now->tm_year + 190, tm_now->tm_mon + 1, tm_now->tm_mday);
// 打开日志文件
fp = fopen(filename, "a");
if (fp == NULL) {
printf("打开日志文件失败!\n");
return 1;
}
// 构造日志信息
sprintf(logmsg, "[%02d:%02d:%02d] 日志信息...\n", tm_now->tm_hour, tm_now->tm_min, tm_now->tm_sec);
// 写入日志信息
fprintf(fp, "%s", logmsg);
// 关闭日志文件
fclose(fp);
return ;
}
```
请用C++ 写一个日志系统
好的。这是一个使用 C 语言写的简单日志系统的示例:
```
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define LOG_FILE "log.txt" // 日志文件名
// 记录日志
void log_message(const char* message)
{
// 获取当前时间
time_t now = time(NULL);
struct tm* tm_now = localtime(&now);
char time_str[64];
strftime(time_str, sizeof(time_str), "%Y-%m-%d %H:%M:%S", tm_now);
// 写入日志文件
FILE* log_file = fopen(LOG_FILE, "a");
fprintf(log_file, "[%s] %s\n", time_str, message);
fclose(log_file);
}
int main(int argc, char** argv)
{
log_message("程序启动");
// 其他代码...
log_message("程序结束");
return 0;
}
```
该示例程序在执行时会在名为 "log.txt" 的文件中记录日志。日志的每一行都包含一个当前时间戳和一条消息。