⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 logger.cpp

📁 编译并且测试成功的虚拟机
💻 CPP
字号:
// --** Includes: **---------------------------------------------------#include "stdafx.h"#include "string.h"#include "stdarg.h"#include "Logger.h"// --** Globals: **----------------------------------------------------Logger *logger = NULL;// --** Static Methods: **---------------------------------------------Logger::Logger(const char *fname) {  // Initialize members:  valid = false;  f = NULL;  filename = NULL;    // Get filename:  if(fname==NULL) {    filename = strdup(DEFAULT_LOG_FILENAME);  }     else {    filename = strdup(fname);    // strdup can fail:    if(filename == NULL)      return;  }          // Open file:  f = fopen(filename,"wt");  if (f == NULL) {    delete filename;    return;  }          // Disable buffering: (else data may be lost in a crash)  setbuf(f, NULL);          // Mark object as valid:  valid = true;  logLn("--** Started logging **-------------------------------------");}Logger::~Logger() {  if (valid) {    logLn("--** Ended Logging **---------------------------------------");        if (f != NULL)      fclose(f);        delete[] filename;  }}bool Logger::isValid() const {  return valid;}void Logger::log(const char *format, ...) const {  if (valid) {    char buffer[MAX_LOG_ENTRY_SIZE+1];    va_list errmsg;                    va_start (errmsg, format);    vsprintf (buffer, format, errmsg);    va_end (errmsg);                    fprintf(f,"%s",buffer);  }}void Logger::logLn(const char *format, ...) const {  if (valid) {    char buffer[MAX_LOG_ENTRY_SIZE+1];    va_list errmsg;                    va_start (errmsg, format);    vsprintf (buffer, format, errmsg);    va_end (errmsg);                    fprintf(f,"%s\n",buffer);  }}void Logger::newline() const {  if (valid) {    fprintf(f,"\n");  }}// Convenience functionsvoid Log(char const *format, ...) {  if(logger!=NULL) {      		static char buffer[256];		va_list errmsg;      		va_start (errmsg, format);		vsprintf (buffer, format, errmsg);		va_end (errmsg);      		logger->logLn("%s",buffer);	}}void LogNoLn(char const *format, ...) {	if(logger!=NULL) {                   		static char buffer[256];		va_list errmsg;				va_start (errmsg, format);		vsprintf (buffer, format, errmsg);		va_end (errmsg);				logger->log("%s",buffer);	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -