zlogログリポジトリの使用
8654 ワード
個人は埋め込み式linuxの開発の中で、ピットをつなぐ第一歩:このピットにzlogログシステムを加える.
zlog
zlogマニュアル
github
コンパイル
使用
confファイルの作成
解析 my="[%d]%f>:FUNCTION:%U,LINE:%L,%m"出力ログの印刷スタイルを指定 になります. . “/tmp/device.log”, 512KB * 2 ~ “/tmp/device.log.#r”;my出力ログファイルの位置と名前 を使用する.
ソースコード
xxx.hグローバル宣言
main.c初期化
テスト
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
解析
printf("ojbk
");
をzlog("ojbk
");
に変更すると、印刷出力は次の[2020-05-08 18:46:44] main.cpp>: FUNCTION: main, LINE: 305, ojbk
/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