最簡單跨平台的日誌庫

2021-09-12 12:43:23 字數 1537 閱讀 5154

這裡是我之前最常用的日誌庫的**,所有操作幾乎都是通過巨集實現。只需要修改 fprintf 的引數就可以很容易的重定向的不同的檔案或者終端。

**簡單易懂,全部是巨集的實現

跨平台,支援android,linux,macos,windows

易擴充套件,只需要簡單的封裝就可以日誌實現重定向

使用者友好,不同級別日誌顯示,具有不同的顏色。

#include

#include

/* stream related */

#if defined(debug)

#define log_print(fmt, arg...) dowhile(0);

#define log_debug(fmt, arg...)

#else

#define log_print(fmt, arg...) dowhile(0);

#define log_debug(fmt, arg...)

#endif

#define log_warn(fmt, arg...)

#define log_error(fmt, arg...)

#define log_fatal(fmt, arg...)

#define log_info(fmt, arg...)

#define log_verbose(fmt, arg...)

/* global variable */

static

int verbose =1;

//#define copy_bit(u1, u2)

//#define test_bit(u32, n)

//#define clr_bit(u32, n)

//#define cln_bit(u32)

/* macros */

//#define array_size(u) (sizeof(u)/sizeof(u[0]))

//#define return_if_fail(cond)

//#define return_val_if_fail(cond, val)

/* version info */

#define major 1

#define minor 2

#define revision 3

#define stringify_helper(v) #v

#define stringify(v) stringify_helper(v)

#define version_string() stringify(major) "." \

stringify(minor) "." \

stringify(revision)

#define version_code() (major << 16 + minor << 8 + revision)

intmain

(int argc,

char

**ar**)

loginsight跨平台日誌檢視工具

看日誌,是研發的日常工作,相信你已經從各種報錯日誌中查出許多bug,但也被冗長 複雜的日誌困擾過無數次。在日常工作中,我也經常痛苦於看日誌,一般是這些日誌長得面目猙獰 不僅日誌看的不順眼,看日誌的工具也不蹭手 想按某個關鍵字過濾日誌,有的工具還不支援 剛剛自己分析得頭頭是道,一叫人過來就忘記從哪看起...

跨平台kivy庫使用

最近發現了乙個不錯的跨平台開發庫,kivy 官網 類似qt,其 可以在windows,mac os,linux,android和ios上執行,大概了解了下使用,比較適合自己開發小工具吧,到實際專案估計得踩坑,具體還沒踩過,體驗下先。建立乙個應用程式有三步 2.該類中實現build 方法,初始化顯示w...

Oracle跨平台遷移的簡單總結

前段時間測試了一下goldengate,結合我之前的一些嘗試,對於小機環境的遷移,思路是逐步清晰了起來。需求的核心是跨平台遷移資料庫,最好能夠公升級到新的版本,對於乙個核心系統的一主兩備,需要保證資料完整性的前提,同時能夠盡可能保持在乙個較短的維護時間,對此自己也琢磨了很多方案。想了nfs的方案,在...