网站首页 > 开源技术 正文
大家好,我是杂烩君。
上次分享了分享嵌入式软件调试方法及几个有用的工具!。其中有简单提到log滚动覆盖,就有小伙伴来问怎么做log滚动覆盖,本篇文章我们就来介绍一种log滚动覆盖的方法。
其实,我们之前有分享过的,大家可能没注意。
我们之前的周记嵌入式大杂烩周记 第 7 期:zlog就具备这个功能。
这里我们来简单地演示一下。
例子:
#include <stdio.h>
#include <unistd.h>
#include "zlog.h"
int main(int argc, char** argv)
{
int rc;
zlog_category_t *zc;
rc = zlog_init("test.conf");
if (rc)
{
printf("init failed\n");
return -1;
}
zc = zlog_get_category("my_cat");
if (!zc)
{
printf("get cat fail\n");
zlog_fini();
return -2;
}
zlog_info(zc, "微信公众号:嵌入式大杂烩");
int i = 0;
while (1)
{
zlog_info(zc, "hello, zlog, %d", i++);
usleep(1000);
}
zlog_fini();
return 0;
}
zlog的配置文件test.conf:
[formats]
simple = "%d.%us %m%n"
[rules]
my_cat.INFO "./log/demo.log",1KB*5~"./log/demo.log.#r";simple
上面标明当log存储超过1KB时,则存放到另一个文件,在5个文件来回循环,r代表逆序,如先存满demo.log4,再存demo.log3。
编译:
gcc test.c -o test_zlog -I ./build_x86/include -L ./build_x86/lib/ -lzlog -lpthread
运行得到:
log分为了几份,看log的时候也不是很方便呀?
为了方便分析,我们可以写个简单的shell脚本把log进行合并:
#!/bin/bash
#####################################################################
# 脚本功能:log合并
#####################################################################
# 存log的路径
LOG_PATH=.
# 合成的文件
APP_MERGE_LOG_FILE=${LOG_PATH}/app_log_$(date +%m%d_%H%M)
# 总app log文件合成
touch ${APP_MERGE_LOG_FILE}
for i in 4 3 2 1 0;
do
$(cat demo.log.${i} >> ${APP_MERGE_LOG_FILE} 2>&1)
done
$(cat demo.log >> ${APP_MERGE_LOG_FILE} 2>&1)
echo "merge app_log success!! file_name: ${APP_MERGE_LOG_FILE}"
我们可以观察log的特点进行合并。比如可以通过文件创建的时间顺序来合并。或者log是存在嵌入式Linux板上,也可以借助rsync工具把log同步到本地之后根据时间来合并。这类情况的合并的脚本我们之前也有分享过,传送门:
分享嵌入式中几个实用的shell脚本!
以上就是本次的分享~
如果觉得文章有帮助,麻烦帮忙点赞、收藏、转发,谢谢!
猜你喜欢:
猜你喜欢
- 2024-10-24 AG被破三高大翻盘!#2023KPL夏季赛
- 2024-10-24 PHP 8.1.9 更新发布(php8正式发布)
- 2024-10-24 Android Debug 之 Log 最佳实践(android logger)
- 2024-10-24 Java大牛总结:Java日志知识点详解,一文看懂
- 2024-10-24 教程 | 如何使用Z CAM颜色校正插件?
- 2024-10-24 方便竖屏拍摄的4K120帧电影机——ZCAM E2
- 2024-10-24 单评|可以拍摄4K 5倍慢动作的电影机ZCAM E2
- 2024-07-17 Java有哪些不同级别 ,怎么成为Java工程师
- 2024-07-17 ZRAW VideoSuite还不会用?看完你就懂了
- 2024-07-17 bug解决不了?使用日志法(日志功能)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)