簡單日誌庫

源由

這個就不再說了

過程

一個類,或者工程總需要那麼幾個錯誤輸出之類的東西,便於調試和排查問題。
從qqbot上對日誌類有了一定的想法了。
需求分析
1,最重要的是,輸出日誌。
   重要性分級?
   模塊信息
   msg參數化 
        如不僅僅是"hello"
        還可以"helle %d %s %f",xxx
2,
技術要點
1,不定參數與格式化輸出
    va_start (va, msg);
    vfprintf(logto , msg, va);
    va_end(va);
內容要點
1,每條記錄有哪些必要信息呢
    時間
    函數
    行數 
    進程? 
    msg
結構要點
麻雀雖小,五臟俱全。
結構上應該是什麼樣子呢
1,調試信息
  枚舉或者宏,應該沒什麼壓力 
2,輸入
  輸入編碼是個問題,傾向於使用utf-16
3,輸出
  傾向於文件,像標準輸出啊,std::err之類的也應該支持。
4,存在形式。
//方案1類
class log
{
private:
    FILE *LogTo;
public:
    WriteToLog();
}
//方案2全局函數
LogPrint(LogTo,msg,line,time,...);
//方案3全局函數+全局配置類
class cfg
{
    logInfo xxx
    logto xxxx;
    ...
}
//基本函數LogPrint(...);
//有參宏定義
//...

理想中的樣子

DbPrint(DEBUG, "X的值是%d", x);
通過修改cfg,可以改變輸出啊,什麼的。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章