写了个 C 语言的日志库, 设置了 8 个 level, 想用 8 种颜色来区分(越严重的 log 颜色越明显), 调整几次了, 还是感觉不理想, 大家给点意见. https://github.com/Akagi201/lwlog

2014-12-01 10:41:50 +08:00
 Akagi201
3456 次点击
所在节点    问与答
15 条回复
besto
2014-12-01 10:45:32 +08:00
Log这种东西吧,要配合grep一起用,个人愚见。打的多没关系,只要别严重影响性能就好,靠关键词区分最好
icedx
2014-12-01 10:50:51 +08:00
这个可以做什么
Akagi201
2014-12-01 11:01:39 +08:00
@besto 全用宏实现的, 只是传了不同参数的fprintf(stderr, xxxx)而已, 之前用函数实现, 加时间, 网络等等功能, 现在不想用了.

@icedx 就是来统一化打印用的
bookit
2014-12-01 11:08:50 +08:00
用这个工具来配色

https://color.adobe.com/zh/
lsmgeb89
2014-12-01 11:20:10 +08:00
这个只能个人小项目用用吧。大项目 log 多了影响性能的,所以要有配置文件控制输出那些。

0. 头文件兼容 C++
1. 加时间输出
2. 跨平台
3. 线程安全
4. 根据配置文件调整级别,不要重编译
5. 启动时注册模块,根据配置文件,输出不同模块的 log。
6. 根据配置文件调整输出对象(文件、终端。。。)

其实很多库都带的 log 功能的,Windows API,boost,QT
而且 Windows 下的那个对性能影响很小。
Akagi201
2014-12-01 11:25:46 +08:00
@lsmgeb89 我的想法也是大项目根据自己特点自己写日志库吧,小项目不用那么复杂功能就不要造轮子了
sharebox
2014-12-01 11:49:28 +08:00
不建议搞这么复杂,日志多了估计会有影响。 直接在每行日志把级别打上,分析的时候grep一下多简单。
ChanneW
2014-12-01 12:39:12 +08:00
楼主的库一统江湖,成为行业标准.以后招聘程序员就得加一条:非色盲色弱.
Akagi201
2014-12-01 12:47:46 +08:00
@sharebox 性能保证不会有影响的, 使用宏就是build time的事情, 跟fprintf性能完全一样. 关掉后一点性能损失没有. 颜色不想要也可以去掉.

@ChanneW 可以增加一点声音控制, error来个警报音...
sharebox
2014-12-01 13:18:24 +08:00
@Akagi201 实际环境中,应该没有人整天守着服务器看日志吧,你加个警报也没人听得到,还不如加邮件告警。一般的大项目,尤其是分布式应用,日志每天都是几十G的产生,可能更多,基本上都是统一打包送到日志服务器,有专门的分析服务,出了问题会首先看过滤后的结果,不然找日志都麻烦。

不过看样子,好像是歪楼了,呵呵。
jemyzhang
2014-12-01 13:46:10 +08:00
log最好用字符区分,便于查找,颜色啥的都是噱头
twilight
2014-12-02 14:25:53 +08:00
@lsmgeb89 "其实很多库都带的 log 功能的,Windows API"是指Windows Event Log Functions么?
Weakdancer
2014-12-04 20:19:42 +08:00
我的方法是事物名字的hash值转化成对应的RGB颜色就行了,颜色看久了就会有条件反射的感觉了。
比如看到绿色就知道是warning等。

另外可以直接红橙黄绿青蓝紫也可以。

这是我之前写个管理很多项目编译的操作面板。
颜色就是 : bg="#%6X"%abs(hash(f)/200)
f就是名字。

http://v2ex.com/i/A5c93DnE.jpeg

另外这是我以前在C51下写的logging,能用而已。
http://myswap.sinaapp.com/wd/logging.h
Akagi201
2014-12-04 20:30:05 +08:00
@Weakdancer 我这个目前只有level的控制, 后面可能考虑加入module的控制. 当然还是能在运行时控制最好了, 不过我的需求目前不需要, 因为我是提供库给别人用, 别人绝对不会在运行时用我的日志库, 一定是用他自己的.

另外, 我觉得重要是的把严重错误突出显示出来. 属于哪个模块相对次要, 可以发现错误了在看. 相关的项目有个`Colormake`, 我也在用的, 等有空看看他的颜色是怎么定的吧.
Akagi201
2014-12-04 20:32:18 +08:00
@Weakdancer 你这网站挺奇葩的, 呵呵. 现在web开发方向技术发展很快, 我想引入一些思想到嵌入式里面来.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/150572

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX