zlogログリポジトリの使用

8654 ワード

個人は埋め込み式linuxの開発の中で、ピットをつなぐ第一歩:このピットにzlogログシステムを加える.
zlog
zlogマニュアル
github
コンパイル
make CC=xxxxx-gcc 
make PREFIX=/home/chry/codes/github/tar/new-root  install 


             
xxxxx-strip  /home/chry/codes/github/tar/new-root/lib/*

使用
confファイルの作成zlog.confログ出力フォーマットの構成:
[formats]
my = "[%d] %f>: FUNCTION: %U, LINE: %L, %m"
[rules]
my_cat.DEBUG >stdout;my
*.*     "/tmp/device.log", 512KB * 2 ~ "/tmp/device.log.#r";my

解析
  • my="[%d]%f>:FUNCTION:%U,LINE:%L,%m"出力ログの印刷スタイルを指定printf("ojbk
    ");
    zlog("ojbk
    ");
    に変更すると、印刷出力は次の
    [2020-05-08 18:46:44] main.cpp>: FUNCTION: main, LINE: 305, ojbk
    
  • になります.
  • . “/tmp/device.log”, 512KB * 2 ~ “/tmp/device.log.#r”;my出力ログファイルの位置と名前/tmp/device.logを指定し、最大2個保存し、各ファイル512KB、古いファイルは/tmp/device.log.1/tmp/device.log.2で命名し、myの印刷スタイル
  • を使用する.zlog.confの位置を乱すことはできません.コードにアドレスを指定する必要があります.
    ソースコード
    xxx.hグローバル宣言
    #include 
    #define ZLOG_CFG   "zlog.conf"		//  conf    
    extern zlog_category_t * log_category;
    
    #define COLOR_STR_NONE          "\033[0m"
    #define COLOR_STR_BLACK         "\033[0;30m"
    #define COLOR_STR_LIGHT_GRAY    "\033[0;37m"
    #define COLOR_STR_DARK_GRAY     "\033[1;30m"
    #define COLOR_STR_BLUE          "\033[0;34m"
    #define COLOR_STR_LIGHT_BLUE    "\033[1;34m"
    #define COLOR_STR_GREEN         "\033[0;32m"
    #define COLOR_STR_LIGHT_GREEN   "\033[1;32m"
    #define COLOR_STR_CYAN          "\033[0;36m"
    #define COLOR_STR_LIGHT_CYAN    "\033[1;36m"
    #define COLOR_STR_RED           "\033[0;31m"
    #define COLOR_STR_LIGHT_RED     "\033[1;31m"
    #define COLOR_STR_PURPLE        "\033[0;35m"
    #define COLOR_STR_LIGHT_PURPLE  "\033[1;35m"
    #define COLOR_STR_BROWN         "\033[0;33m"
    #define COLOR_STR_YELLOW        "\033[1;33m"
    #define COLOR_STR_WHITE         "\033[1;37m"
    #define TIME_STR        "[%04d-%02d-%02d %02d:%02d:%02d]"
    
    
    #define ryDbg(str, args...)     \
        if (log_category) \
            zlog(log_category, __FILE__, sizeof(__FILE__)-1, __func__, sizeof(__func__)-1, __LINE__, ZLOG_LEVEL_DEBUG, COLOR_STR_GREEN str COLOR_STR_NONE, ##args); 
    
    #define ryErr(str, args...)     \
        if (log_category) \
            zlog(log_category, __FILE__, sizeof(__FILE__)-1, __func__, sizeof(__func__)-1, __LINE__, ZLOG_LEVEL_DEBUG, COLOR_STR_RED str COLOR_STR_NONE, ##args);
            
    

    main.c初期化
    #include "xxx.h"
    zlog_category_t * log_category = nullptr;
    
    int main()
    {
        if (zlog_init(ZLOG_CFG))
        {
            printf("Error: zlog_init
    "
    ); zlog_fini(); } else { // , category log_category = zlog_get_category("my_cat"); if (!log_category) { printf("Error: get cat fail
    "
    ); zlog_fini(); } } // ====================================================== // todo // ====================================================== zlog_fini(); }

    テスト
    chry@pc ~/c/g/U/b/UpgraderClient> cat /tmp/device.log 
    [2020-05-08 18:46:44] main.cpp>: FUNCTION: main, LINE: 305, ojbk