源由
這個就不再說了
過程
一個類,或者工程總需要那麼幾個錯誤輸出之類的東西,便於調試和排查問題。
從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,可以改變輸出啊,什麼的。