是尘封已久的记忆再次融化 是堆积心底的烈火再次燃烧 是直觉让我来到这久违的大地 是信念让我开始了新的征途 在硝烟中我得到了成长 在伤痛中我学会了坚强 在沉默中我明白了等待 在孤独中我体味了感伤 并不是我不懂得眼泪 并不是我只知道使命 在内心深处我同你一样火热 在我的眼中也有着多情的泪光 也许我的生命如落叶般短暂 也许我只是岁月长河中的一个过客 但我对自己所做的一切无怨无悔 因为我品尝到了那最后一刻的泪光
随笔-6  评论-24  文章-8  trackbacks-0
该类的作用是写入程序运行时的错误.

/******************头文件***************************/
#ifndef LOG_H
#define LOG_H
#include <stdio.h>
#include <stdarg.h>
class LOG
{
protected:
    FILE * logfile;
   
    bool Shutdown(void);
public:
    bool Init(char * filename);

    //output to log
    void OutputNewline();
    void OutputError(char * text, ...);
    void OutputSuccess(char * text, ...);
   
    LOG() {}
    ~LOG() { Shutdown(); }
};
#endif

/************实现文件*******************/

#include "LOG.h"

//initiates logfile
bool LOG::Init(char * filename)
{
    if( (logfile = fopen(filename, "wb")) == NULL)
        return false;
    fclose(logfile);
    return true;
}

//shuts down log
bool LOG::Shutdown()
{
    if(logfile)
        fclose(logfile);
    return true;
}

//
void LOG::OutputNewline()
{
    if( (logfile = fopen("Error Log.txt", "a+")) == NULL )
        return;
    putc('\n', logfile);
    fclose(logfile);
}

void LOG::OutputError(char * text, ...)
{
    va_list arg_list;
   
    va_start(arg_list, text);
    if( (logfile = fopen("Error Log.txt", "a+")) == NULL )
        return;
    //写入文件
    fprintf(logfile, "<!>");
    vfprintf(logfile, text, arg_list);
    putc('\n', logfile);
    //写到console
    printf("<!>");
    vprintf(text, arg_list);
    printf("\n");
   
    fclose(logfile);
    va_end(arg_list);
   
}

posted on 2009-01-05 20:27 noBugnoGain 阅读(403) 评论(0)  编辑 收藏 引用 所属分类: C++学习

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理