搜索
bottom↓
回复: 121

【开源】超轻量级C日志库--EasyLogger正式发布

  [复制链接]

出0入198汤圆

发表于 2015-8-17 12:11:37 | 显示全部楼层 |阅读模式
本帖最后由 sunnydragon 于 2015-8-18 11:11 编辑

通过与网友需求讨论确认http://www.amobbs.com/thread-5619454-1-1.html,再经过开发、测试阶段后,这款超轻量级、高性能的C日志库-EasyLogger今天正式跟大家见面了。目前该项目已应用在我的3个项目中了,还有其他网友也提前抢先做了试用,大大提高大家分析问题、定位问题的效率。
EasyLogger
1. 介绍
EasyLogger是一款超轻量级(ROM<1.6K, RAM<0.3K)、高性能的C日志库,非常适合对资源敏感的软件项目,例如:IoT产品、可穿戴设备、智能家居等等。相比log4c、zlog这些知名的C日志库,EasyLogger的功能更加简单,提供给用户的接口更少,但上手会很快,更多实用功能支持以插件形式进行动态扩展。

1.1 主要特性
  • 支持用户自定义输出方式(例如:终端、文件、数据库、串口、485、Flash...);
  • 日志内容可包含级别、时间戳、线程信息、进程信息等;
  • 日志输出被设计为线程安全的方式;
  • 支持多种操作系统(RT-Thread、UCOS、Linux、Windows...),也支持裸机平台;
  • 日志支持 RAW格式
  • 支持按 标签级别关键词 进行动态过滤;
  • 扩展性强,支持以插件形式扩展新功能。

名词解释:
1、RAW格式:未经过格式化的原始日志。
2、标签:在软件中可以按照文件、模块、功能等方面,对需要打印的日志设定标签,实现日志分类。

1.2 插件
  • 1、Flash:使用EasyFlash库提供的Flash操作接口,可以把日志直接存储在Flash中。
  • 2、File(正在开发):支持文件转档、软件运行时动态加载配置文件等与文件日志输出相关功能。
  • 3、敬请期待……


1.3 Star & Fork
续我还会提供更多插件。也非常欢迎大家设计、开发更多实用插件和功能,一起来完善EasyLogger(Github|OSChina|Coding) 。如果觉得这个开源项目很赞,可以点击项目主页 右上角的Star,同时把它推荐给更多有需要的朋友

2. 使用
2.1 参数配置
EasyLogger拥有过滤方式、输出格式、输出开关这些属性。
  • 过滤方式支持按照标签、级别、关键词进行过滤;
  • 可以动态的开启/关闭日志的输出;
  • 可设定动态和静态的输出级别(静态:一级开关,通过宏定义;动态:二级开关,通过API接口)。

注:目前参数配置及输出方式都是单例模式,即全局只支持一种配置方式。此模式下,软件会较为简单,但是无法支持复杂的输出方式。

2.2 输出级别
参考Android Logcat,级别最高为0(Assert),最小为5(Verbose)。
  1. 0.[A]:断言(Assert)
  2. 1.[E]:错误(Error)
  3. 2.[W]:警告(Warn)
  4. 3.[I]:信息(Info)
  5. 4.[D]:调试(Debug)
  6. 5.[V]:详细(Verbose)
复制代码

2.3 输出过滤
支持按照级别、标签及关键词进行过滤。日志内容较多时,使用过滤功能可以更快定位日志,保证日志的可读性。更多的过滤功能设置方法及细节请阅读\docs\zh\api\kernel.md文档

2.4 输出格式
输出格式支持:级别、时间、标签、进程信息、线程信息、文件路径、行号、方法名。每种优先级别可以独立设置输出格式。
注:默认为 RAW格式,RAW格式日志不支持标签过滤

2.5 输出方式
通过用户的移植,可以支持任何一种输出方式。只不过对于某种输出方式可能引入的新功能,需要通过插件实现,例如:文件转存,检索Flash日志等等。后期会有更多的插件开源出来。下面简单对比下部分输出方式使用场景:
  • 终端:方便用户动态查看,不具有存储功能;
  • 文件与Flash:都具有存储功能,用户可以查看历史日志。但是文件方式需要文件系统的支持,而Flash方式更加适合应用在无文件系统的小型嵌入式设备中。


2.6 Demo


2.6.1 核心功能
下图为在终端中输入命令来控制日志的输出及过滤器的设置,更加直观的展示了EasyLogger核心功能。

2.6.2 Flash Log(将日志保存到Flash中)
下图过程为通过控制台输出日志,并将输出的日志存储到Flash中。重启再读取上次保存的日志,最后清空Flash日志。

3. 文档
具体内容参考\docs\zh\下的文件。务必保证在 阅读文档 后再移植使用。

4. 后期
  • 1、Flash存储(已完成):在EasyFlash中增加日志存储、读取功能,让EasyLogger与其无缝对接。使日志可以更加容易的存储在 非文件系统 中,并具有历史日检索的功能
  • 2、配置文件:文件系统下的配置文件;
  • 3、文件转档:文件系统下支持文件按容量转档,按时间区分;
  • 4、日志助手:开发跨平台的日志助手,兼容Linux、Windows、Mac系统,打开助手即可查看、过滤(支持正则表达式)、排序、保存日志等。前端:HTML5 + Bootstrap + AngularJS + NW.js,后端:Rust + iron + rust-websocket + serial-rs
  • 5、异步输出:目前日志输出与用户代码之间是同步的方式,这种方式虽然软件简单,也不存在日志覆盖的问题。但在输出速度较低的平台下,会由于增加日志功能,而降低软件运行速度。所以后期会增加 异步输出 方式,关键字过滤也可以放到异步输出中去;
  • 6、Arduino:增加Arduino lib,并提供其Demo;


5. 许可
MIT Copyright (c) armink.ztl@gmail.com

6. 下载
本坛:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入198汤圆

 楼主| 发表于 2015-8-22 08:48:08 | 显示全部楼层
大家下载我在1楼上传的源代码附件时有没有遇到被谷歌浏览器认为是 “您要访问的网站包含有害程序” ,导致无法下载的问题?我这里一直是这样

我这里又重新上传了一份,大家试试看:

如果还不行,可以在百度云里下载:http://pan.baidu.com/s/1bnmDgOR

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2015-8-17 12:16:33 | 显示全部楼层
github上的介绍翻译成英文吧?可能知名度更广一些

出0入4汤圆

发表于 2015-8-17 12:21:20 | 显示全部楼层
前面有easy flash,现在是logger。
楼主后面打算做什么方面的?

出0入0汤圆

发表于 2015-8-17 12:34:44 | 显示全部楼层
LZ好厉害                 

非常感谢LZ的分享,正在发愁客户配方怎么放到Flash里面/

出0入0汤圆

发表于 2015-8-17 12:36:29 | 显示全部楼层
下载学习一下,顶楼主!

出0入0汤圆

发表于 2015-8-17 12:45:05 | 显示全部楼层
mark 一个, 超轻量级C日志库--EasyLogger, 感谢分享

出0入0汤圆

发表于 2015-8-17 12:50:10 | 显示全部楼层
鼓励开源,改天试用一下,测试测试

出0入0汤圆

发表于 2015-8-17 12:53:50 | 显示全部楼层
mark一下,好东西啊,谢谢楼主。超轻量级C日志库

出0入198汤圆

 楼主| 发表于 2015-8-17 13:02:09 | 显示全部楼层
dhbighead 发表于 2015-8-17 12:16
github上的介绍翻译成英文吧?可能知名度更广一些

好的~这个是下一步的计划,毕竟是国产开源,我想先把中心放到国内用户上。

出0入198汤圆

 楼主| 发表于 2015-8-17 13:02:52 | 显示全部楼层
ibichao 发表于 2015-8-17 12:21
前面有easy flash,现在是logger。
楼主后面打算做什么方面的?

持续关注我的Github吧,到时候你就知道啦

出0入198汤圆

 楼主| 发表于 2015-8-17 13:04:59 | 显示全部楼层
RAMILE 发表于 2015-8-17 12:34
LZ好厉害                 

非常感谢LZ的分享,正在发愁客户配方怎么放到Flash里面/ ...

欢迎试用哈~EasyLogger对有了EasyFlash做底层支持,这些存储功能都很好实现。

出0入198汤圆

 楼主| 发表于 2015-8-17 13:06:30 | 显示全部楼层
Lawson 发表于 2015-8-17 12:50
鼓励开源,改天试用一下,测试测试

欢迎测试哈~不仅仅是嵌入式平台,里面还有Windows及Linux系统下的Demo。

出0入0汤圆

发表于 2015-8-17 13:38:01 | 显示全部楼层
这个很强大,顶楼主

出0入0汤圆

发表于 2015-8-17 13:48:12 | 显示全部楼层
我要好好学习这个 不错不错

出0入4汤圆

发表于 2015-8-17 13:51:07 | 显示全部楼层
感觉很不错的东西啊。留个脚印

出0入0汤圆

发表于 2015-8-17 13:55:24 | 显示全部楼层
虽然用不到,但支持楼主

出0入0汤圆

发表于 2015-8-17 13:56:20 | 显示全部楼层
楼zu,zu意zhi体。

出0入0汤圆

发表于 2015-8-17 14:03:31 | 显示全部楼层
关注
-------------------
请问楼主: EasyFlash 有对flash读写做保护吗?如果flash扇区在擦除后写的瞬间断电,会导致整个扇区数据丢失。这个如何处理?

出0入0汤圆

发表于 2015-8-17 14:07:18 | 显示全部楼层
果断收藏备用,支持LZ,支持开源!

出0入0汤圆

发表于 2015-8-17 14:17:11 来自手机 | 显示全部楼层
不明觉历    支持一下!

出0入8汤圆

发表于 2015-8-17 14:28:53 | 显示全部楼层
支持楼主,支持开源。

出0入0汤圆

发表于 2015-8-17 14:49:48 | 显示全部楼层
支持楼主。
下载。
谢。

出0入0汤圆

发表于 2015-8-17 14:56:28 | 显示全部楼层
有想法、支持

出110入0汤圆

发表于 2015-8-17 16:30:29 | 显示全部楼层
支持,准备移植  

出0入0汤圆

发表于 2015-8-17 17:21:43 | 显示全部楼层
好东西,支持一下

出0入0汤圆

发表于 2015-8-17 17:32:11 | 显示全部楼层
支持支持,日志库。以后单片机也上日志啦

出0入0汤圆

发表于 2015-8-17 18:24:53 | 显示全部楼层
前段时间用了下感觉功能还是挺实用的。。谢谢楼主分享

出0入198汤圆

 楼主| 发表于 2015-8-17 21:19:12 | 显示全部楼层
咖啡可乐 发表于 2015-8-17 14:03
关注
-------------------
请问楼主: EasyFlash 有对flash读写做保护吗?如果flash扇区在擦除后写的瞬间断 ...

不用担心~EasyFlash是支持软件掉电保护的,开启掉电保护模式即可。
可以看下这里的配置文档:https://github.com/armink/EasyFlash/blob/master/docs/zh/port.md#512-掉电保护

出0入198汤圆

 楼主| 发表于 2015-8-17 21:25:17 | 显示全部楼层
cumthe 发表于 2015-8-17 17:32
支持支持,日志库。以后单片机也上日志啦

是的哦~这也是我设计这个日志库的初心。

出0入198汤圆

 楼主| 发表于 2015-8-17 21:28:25 | 显示全部楼层
changxiaoqing11 发表于 2015-8-17 18:24
前段时间用了下感觉功能还是挺实用的。。谢谢楼主分享

是在什么平台下、什么场景下使用的呢?欢迎跟广大网友一起分享你的更多感受哈。

出0入0汤圆

发表于 2015-8-17 21:43:26 | 显示全部楼层
的确方便调试了

出0入0汤圆

发表于 2015-8-17 21:54:27 | 显示全部楼层
持续关注LZ

出0入0汤圆

发表于 2015-8-17 22:05:23 | 显示全部楼层
这个好像很强哦,还没有用过这个东西呢

出0入0汤圆

发表于 2015-8-17 22:15:56 | 显示全部楼层
sunnydragon 发表于 2015-8-17 21:19
不用担心~EasyFlash是支持软件掉电保护的,开启掉电保护模式即可。
可以看下这里的配置文档:https://git ...

能否介绍下实现原理?

是只保护配置参数的环境变量还是所有数据均能保护?

出0入22汤圆

发表于 2015-8-17 22:24:45 | 显示全部楼层
貌似是个好东西啊,感谢楼主的分享。

出0入0汤圆

发表于 2015-8-17 22:46:39 | 显示全部楼层
赞! 已star~

出0入0汤圆

发表于 2015-8-17 23:08:04 | 显示全部楼层
看着蛮cool的,有机会试用一下

出0入0汤圆

发表于 2015-8-17 23:14:39 | 显示全部楼层
不知道这是神马东东。。。

出0入134汤圆

发表于 2015-8-18 01:55:55 | 显示全部楼层
上日志系统调试起来就方便多了,以前都是自己弄个串口打印,这个就正规多了。多谢~

出0入198汤圆

 楼主| 发表于 2015-8-18 07:47:41 | 显示全部楼层
gnocy 发表于 2015-8-17 22:05
这个好像很强哦,还没有用过这个东西呢

下次有项目可以试试嘛,对定位问题、分析Bug的效率有很大的提高。

出0入198汤圆

 楼主| 发表于 2015-8-18 07:50:16 | 显示全部楼层
咖啡可乐 发表于 2015-8-17 22:15
能否介绍下实现原理?

是只保护配置参数的环境变量还是所有数据均能保护?  ...

原理很简单,Flash里的数据会备份存储一份,意外掉电后会自动还原。没太看明白你的第二个问题,建议先仔细阅读下文档啊~

出0入198汤圆

 楼主| 发表于 2015-8-18 07:54:51 | 显示全部楼层
elecfun 发表于 2015-8-18 01:55
上日志系统调试起来就方便多了,以前都是自己弄个串口打印,这个就正规多了。多谢~ ...

欢迎使用哈~EasyLogger最大的优势就是超轻量级、高性能,以至于能被应用于嵌入式平台,更好的辅助嵌入式开发者提高调试、解决问题的效率。

出0入0汤圆

发表于 2015-8-18 08:38:12 | 显示全部楼层
不知空间使用效率怎么样?例如一条日志是以什么格式存储的,需要占用的空间怎么计算?

出0入0汤圆

发表于 2015-8-18 08:47:35 | 显示全部楼层
标记学些, C日志库. 大牛自己写的调试系统,顶!

出0入0汤圆

发表于 2015-8-18 08:52:43 | 显示全部楼层
关注 轻量级C日志管理

出5入8汤圆

发表于 2015-8-18 09:07:32 | 显示全部楼层
开源做的很不错, 拜读下代码    谢谢分享

出0入0汤圆

发表于 2015-8-18 09:24:47 | 显示全部楼层
再加一个串口控制台,叼爆了,

出0入198汤圆

 楼主| 发表于 2015-8-18 09:44:48 | 显示全部楼层
单飞 发表于 2015-8-18 08:38
不知空间使用效率怎么样?例如一条日志是以什么格式存储的,需要占用的空间怎么计算? ...

日志是以字节格式进行明文存储的。每行日志有多少字节,占用Flash空间就有多大。

出0入198汤圆

 楼主| 发表于 2015-8-18 09:45:56 | 显示全部楼层
Vampireyifeng 发表于 2015-8-18 09:24
再加一个串口控制台,叼爆了,

呵呵,想到一块去了。这个就是已经在进行中啦~

出0入0汤圆

发表于 2015-8-18 10:40:51 | 显示全部楼层
NB...向大神学习。。

出0入8汤圆

发表于 2015-8-18 10:49:37 | 显示全部楼层
关注下,以后试用下啊,楼主强大~~

出0入0汤圆

发表于 2015-8-18 11:12:52 | 显示全部楼层
好东西,收藏备用,谢谢分享~

出0入0汤圆

发表于 2015-8-18 11:15:15 | 显示全部楼层
sunnydragon 发表于 2015-8-18 09:45
呵呵,想到一块去了。这个就是已经在进行中啦~

你要做类似于Windows的命令提示符或者linux的shell啊。。。

这个不是要os作为支撑的吗?或者说作为一个应用接管。。。我看控制台程序是会接管shell的

出0入198汤圆

 楼主| 发表于 2015-8-18 13:54:20 | 显示全部楼层
myxiaonia 发表于 2015-8-18 11:15
你要做类似于Windows的命令提示符或者linux的shell啊。。。

这个不是要os作为支撑的吗?或者说作为一个 ...


是啊~但是复杂度肯定赶不上linux及windows上的shell

主要是嵌入式平台不管裸机还是实时操作系统中都没有我心目中强大的终端工具,现在我用的唯一比较顺手的就是RT-Thread的finsh,但是像组合键、密码验证、二级命令自动补全、中断命令线程/进程输出等功能是没有的,所以才打算自己重新造一个支持全平台的车轮子~

出0入0汤圆

发表于 2015-8-18 17:29:53 | 显示全部楼层
谢谢 分享

出0入0汤圆

发表于 2015-8-18 18:25:12 | 显示全部楼层
sunnydragon 发表于 2015-8-17 21:28
是在什么平台下、什么场景下使用的呢?欢迎跟广大网友一起分享你的更多感受哈。 ...

STM32 裸奔使用的,呵呵,如果可以加个错误日志可回滚打印应该更方便了。。这样定位应该比较方便,现在是直接打印到串口。。

出0入0汤圆

发表于 2015-8-18 20:52:00 | 显示全部楼层
我自己做了个简单的LOG输出,可以输出到串口,但是输出到yaffs文件不知道怎么弄,不可能每来一条就直接sync到文件吧,什么时候比较合适呢?

出0入0汤圆

发表于 2015-8-18 22:11:39 来自手机 | 显示全部楼层
可以搞一个简易文件系统!

出0入0汤圆

发表于 2015-8-18 22:39:32 | 显示全部楼层
sunnydragon 发表于 2015-8-18 07:50
原理很简单,Flash里的数据会备份存储一份,意外掉电后会自动还原。没太看明白你的第二个问题,建议先仔 ...

flash备份存储是随机地址还是固定地址?如果是固定地址,会不会多次擦写减少flash寿命?

出0入0汤圆

发表于 2015-8-19 08:16:40 | 显示全部楼层
sunnydragon 发表于 2015-8-18 09:44
日志是以字节格式进行明文存储的。每行日志有多少字节,占用Flash空间就有多大。 ...

意思是按文本形式存储的?汉字2字节、ASCII码1字节存的?这样的话不适合做数据存储,占空间大、不能压缩。

出0入0汤圆

发表于 2015-8-19 08:30:37 | 显示全部楼层
好东西啊,我要了

出0入0汤圆

发表于 2015-8-19 10:04:38 | 显示全部楼层
谢谢LZ分享!
抽空移植到产品上,方便现场调试。

出0入0汤圆

发表于 2015-8-19 10:22:42 | 显示全部楼层
好东西,这个好多时候都要用到

出0入0汤圆

发表于 2015-8-19 10:43:45 | 显示全部楼层
谢谢,学习一下关于调试信息输出的方法!

出0入0汤圆

发表于 2015-8-19 11:02:58 | 显示全部楼层
不错,用来调试输出、监控输出信息很好

出0入198汤圆

 楼主| 发表于 2015-8-19 20:52:50 | 显示全部楼层
changxiaoqing11 发表于 2015-8-18 18:25
STM32 裸奔使用的,呵呵,如果可以加个错误日志可回滚打印应该更方便了。。这样定位应该比较方便,现在是 ...

你的意思是把日志存储起来,然后用的时候取出来对吗?如果是这个功能EasyLogger已经支持了哈,还是无需文件系统的,直接保存至Flash上。

出0入198汤圆

 楼主| 发表于 2015-8-19 20:55:33 | 显示全部楼层
liurangzhou 发表于 2015-8-18 20:52
我自己做了个简单的LOG输出,可以输出到串口,但是输出到yaffs文件不知道怎么弄,不可能每来一条就直接sync ...

你可以把日志用RAM缓存起来,同时打开一个定时器,然后等缓冲区满了或者定时器时间到了,自动保存到文件中。这样应该能解决你的需求吧?

出0入198汤圆

 楼主| 发表于 2015-8-19 20:59:03 | 显示全部楼层
ljt80158015 发表于 2015-8-18 22:11
可以搞一个简易文件系统!

这个单凭一己之力,轮子是很难造出来的。

出0入198汤圆

 楼主| 发表于 2015-8-19 21:01:23 | 显示全部楼层
咖啡可乐 发表于 2015-8-18 22:39
flash备份存储是随机地址还是固定地址?如果是固定地址,会不会多次擦写减少flash寿命? ...

EasyFlash的是支持擦写平衡模式的,所以不用担心单一扇区Flash擦写寿命问题。你可以试试哈,很好配置的。有问题再跟帖留言。

出0入198汤圆

 楼主| 发表于 2015-8-19 21:10:32 | 显示全部楼层
单飞 发表于 2015-8-19 08:16
意思是按文本形式存储的?汉字2字节、ASCII码1字节存的?这样的话不适合做数据存储,占空间大、不能压缩 ...

是这样的,EasyLogger本身可以提供日志库的最核心功能,很多周边应用,例如你说了日志压缩,还有类似像文件转存、异步输出等功能,都可以通过插件来实现。

毕竟这些功能不是所有用户都需要,甚至每个用户想要的压缩方式还不一定一样,所以做成插件形式可以很大程度提高软件的灵活性,方便用户去裁剪和组合。

EasyLogger是开源的,所有权属于我们大家。如果你有兴趣也可以了解下EasyLogger现有的插件方式,然后设计开发日志压缩插件给EasyLogger,为国内开源软件出份力,方便更多人去使用。

出0入198汤圆

 楼主| 发表于 2015-8-19 21:11:47 | 显示全部楼层
crazydtone 发表于 2015-8-19 10:04
谢谢LZ分享!
抽空移植到产品上,方便现场调试。

好的,到时候移植成功了,欢迎来这里报喜~

出0入198汤圆

 楼主| 发表于 2015-8-19 21:15:45 | 显示全部楼层
bbsview 发表于 2015-8-19 11:02
不错,用来调试输出、监控输出信息很好


多谢夸奖~我觉得EasyLogger在产品的开发调试最大的好处就是,在保存普通日志的同时,还能保存硬件及系统异常信息,不用调试人员一直接着串口看打印,或者有些产品在运行时压根没法把日志打印接在PC端,有了EasyLogger,就再也不用担心漏掉这些异常的日志信息了。

出0入0汤圆

发表于 2015-8-19 22:21:16 | 显示全部楼层
sunnydragon 发表于 2015-8-19 20:55
你可以把日志用RAM缓存起来,同时打开一个定时器,然后等缓冲区满了或者定时器时间到了,自动保存到文件 ...

用日志主要是用于调试版本的程序,记录死机前发生了什么

出0入198汤圆

 楼主| 发表于 2015-8-20 10:17:54 | 显示全部楼层
本帖最后由 sunnydragon 于 2015-8-20 10:19 编辑
liurangzhou 发表于 2015-8-19 22:21
用日志主要是用于调试版本的程序,记录死机前发生了什么


EasyLogger是有断言钩子的,同时借助RTT系统提供的硬件异常钩子方法,就能实现在系统或硬件异常时自动保存异常信息。

我不敢确认你的文件系统在系统或硬件异常能否正常工作,EasyLogger在这块做了处理,是没有问题的。

你可以试用下,有问题再跟帖讨论。

出0入10汤圆

发表于 2015-9-1 17:36:29 | 显示全部楼层
楼主平常都是怎么用这个软件的?

出0入10汤圆

发表于 2015-9-1 17:52:00 | 显示全部楼层
另外根据标签来帅选是在电脑上实现的吗?感觉有个矛盾,如果是自己在PC上帅选,那么最后传上来的数据会不会大得惊人?如果是在单片机上帅选,那么能不能比较影响程序?

出0入198汤圆

 楼主| 发表于 2015-9-1 19:53:33 | 显示全部楼层
10xjzheng 发表于 2015-9-1 17:52
另外根据标签来帅选是在电脑上实现的吗?感觉有个矛盾,如果是自己在PC上帅选,那么最后传上来的数据会不会 ...

EasyLogger在我自己的产品上主要要是为了实现快速定位问题、问题追溯等协助调试的功能。

目前我的PC端日志工具还没做好,单片机端在调试时还得使用MCU自带的过滤功能,等以后PC端的日志工具做好,我个人使用这个功能的频率也会降低了。

出0入10汤圆

发表于 2015-9-1 20:11:52 | 显示全部楼层
sunnydragon 发表于 2015-9-1 19:53
EasyLogger在我自己的产品上主要要是为了实现快速定位问题、问题追溯等协助调试的功能。

目前我的PC端日 ...

我现在的理解只是一个打印的软件啊,楼主可以举几个例子吗?
楼主,我加你QQ了,可以的话给我问几个问题呗。

出90入4汤圆

发表于 2015-9-1 20:44:43 | 显示全部楼层
很强大,裸奔的能支持吗?

出0入198汤圆

 楼主| 发表于 2015-9-1 21:09:47 | 显示全部楼层
10xjzheng 发表于 2015-9-1 20:11
我现在的理解只是一个打印的软件啊,楼主可以举几个例子吗?
楼主,我加你QQ了,可以的话给我问几个问题 ...

打印是很好的定位问题的手段,当然前提你得软件内部要有全面的日志结构。

EasyLogger可以软件及硬件异常时,自动保存日志,这点就是最简单的日志定位方式,其他还有很多方式无法一两句说清楚,你也可以多问问身边做PC、移动端软件的朋友,他们用的更多~

另外,没有收到你的QQ请求哦~

出0入198汤圆

 楼主| 发表于 2015-9-1 21:15:52 | 显示全部楼层
john78 发表于 2015-9-1 20:44
很强大,裸奔的能支持吗?


支持裸机的哦~

在 /demo/non-os/ 下就有Demo, 你可以试试哈~有问题再跟帖留言。

出0入10汤圆

发表于 2015-9-2 10:15:07 | 显示全部楼层
sunnydragon 发表于 2015-9-1 21:09
打印是很好的定位问题的手段,当然前提你得软件内部要有全面的日志结构。

EasyLogger可以软件及硬件异常 ...

你的QQ是不是这个383016632?
另外楼主写下日志结构这方面的啦,我不懂!

出0入10汤圆

发表于 2015-9-2 10:21:38 | 显示全部楼层
这个软件我觉得大部分人不会用,可能只会将其用作打印软件,所以楼主可能很有必要教下我们!

出0入0汤圆

发表于 2015-9-2 10:36:59 | 显示全部楼层
非常感谢,对这块一直模模糊糊的,现在看到了这么好的资源,再次感谢

出0入42汤圆

发表于 2015-9-2 10:48:53 | 显示全部楼层
很不错的样子,支持楼主

出0入198汤圆

 楼主| 发表于 2015-9-5 09:22:21 | 显示全部楼层
10xjzheng 发表于 2015-9-2 10:21
这个软件我觉得大部分人不会用,可能只会将其用作打印软件,所以楼主可能很有必要教下我们! ...

好的~改天有时间我出个EasyLogger教程~

出0入10汤圆

发表于 2015-9-5 18:46:16 | 显示全部楼层
sunnydragon 发表于 2015-9-5 09:22
好的~改天有时间我出个EasyLogger教程~

多谢楼主!

出0入0汤圆

发表于 2015-9-6 10:13:00 | 显示全部楼层
稍微看了一下实现
应该是用了锁来实现的,保护的是全局的log_buf
char log_buf[ELOG_BUF_SIZE]
不过如果多个线程进行log的话会得不到锁一直等待的吧
可不可以试着开多几个log_buf?

如果说的不对,请原谅....
c++上有几个写的不错的logger
前些日子也看了下的,楼主可以参考下spdlog, g3log
不过毕竟是c++写的,并不能面向单片机....

出0入0汤圆

发表于 2015-9-15 11:20:58 | 显示全部楼层
原先想用log4c, LZ的这个应该支持的更全面. 先上手实验下

出20入0汤圆

发表于 2015-9-15 11:45:11 | 显示全部楼层
  谢谢分享。

出0入4汤圆

发表于 2015-9-15 21:22:50 | 显示全部楼层
楼主的东西好,开源精神更伟大!

出0入0汤圆

发表于 2015-9-15 23:49:49 | 显示全部楼层
这是个什么东东?

出0入0汤圆

发表于 2015-9-16 09:30:43 | 显示全部楼层
sunnydragon 发表于 2015-8-22 08:48
大家下载我在1楼上传的源代码附件时有没有遇到被谷歌浏览器认为是 “您要访问的网站包含有害程序” ,导致 ...

elog.h文件有个小小的遗漏, 红色部分的2行原代码中无, 应该加上

#if ELOG_OUTPUT_LVL == ELOG_LVL_VERBOSE
#define elog_verbose(tag, ...) \
        elog_output(ELOG_LVL_VERBOSE, tag, __FILE__, __FUNCTION__, __LINE__, __VA_ARGS__)
#else
#define elog_verbose(tag, ...)

#endif

出0入198汤圆

 楼主| 发表于 2015-9-16 13:21:44 | 显示全部楼层
qiushui_007 发表于 2015-9-16 09:30
elog.h文件有个小小的遗漏, 红色部分的2行原代码中无, 应该加上

#if ELOG_OUTPUT_LVL == ELOG_LVL_VERBO ...

多谢反馈哈~已经修复了~https://github.com/armink/EasyLo ... 96dd6f8b386c1cc89cf

出0入0汤圆

发表于 2015-9-17 02:16:51 | 显示全部楼层
不错的代码库 影响程序的性能有多大

出0入0汤圆

发表于 2015-9-17 09:55:55 | 显示全部楼层
好东西,mark,很喜欢这类程序,感谢。

出30入0汤圆

发表于 2015-9-17 10:20:30 | 显示全部楼层
赞一个!试图用上去,在STM32M4上面

出0入42汤圆

发表于 2015-9-17 10:40:18 | 显示全部楼层
我移植到了WQ25Q16BV这个SPI FLASHSH上了,用了uCOS-II操作系统。楼主的代码我还没有仔细研究是如何工作的,我想知道,Flash要更改某个变量,一般的过程是读取变量所在的Page,然后擦除整个Page,然后修改变量再写回去,不知道楼主的过程是如何的?

出0入198汤圆

 楼主| 发表于 2015-9-17 19:56:53 | 显示全部楼层
sczh0001 发表于 2015-9-17 02:16
不错的代码库 影响程序的性能有多大

EasyLoger是一款超轻量级日志库,如果只是输出到控制台性能损失是很小的,输出到文件或者Flash,性能肯定是会有部分损失的。但为了调试方便,便于快速定位问题,这些都是不可避免的。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-24 10:09

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表