-
Notifications
You must be signed in to change notification settings - Fork 2
/
Changelog
117 lines (116 loc) · 5.23 KB
/
Changelog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
--- 1.2.12 ---
[o] bugfix for avoid segmentation fault if call zlog_init() many times
[o] static file rule to emulate python's WatchedFileHandler mode when used with external log rotation
--- 1.2.10 ---
[o] bugfix, LGPL v3 -> LGPL v2.1
--- 1.2.8 ---
[o] gcc __attribute__宏,用于检查zlog的format输出格式
[o] 支持配置文件行中带#注释
--- 1.2.5 ---
[o] 保证在单个线程退出的时候自动删除thread, 用atexit来注册函数解决主线程退出的问题
[o] 缓存多个时间,保证所有的%d在strftime的时候都能每秒缓存,达到和原先%D一样的速度
[o] 鉴于上面那点,去掉%D的使用,虽然库还支持,但文档和实例代码都用%d
[o] 修复makefile静态链接zlog-chk-conf
--- 1.2.4 ---
[o] 不再维持thread_list链表,每次写日志时判断配置有无更新,来刷新每线程的缓存大小
--- 1.2.0 ---
[o] rotate和zip的方案
[o] 把一部分static变量化为全局变量,减少接口参数
[o] fstat64
[o] pipe, cronolog
[o] record忽略第二参数
[o] __VA_ARGS__的跨平台
[o] 增加git/版本在代码中的标志(redis)
[o] 去除auto tools的使用,自行makefile[redis]
[o] 宏都小写化
[o] const
[x] 每线程内置rule-> file fd write time
[x] 用时间作为判断重载配置reload conf period,而不是次数,需要每次取时间计算,暂不考虑
[x] zlog_set_conf("section", "command");
[x] format,spec,level采用直接数组的方式重写,性能提高不大
[x] 增加manpage, df, 案例
--- 1.1.3 ---
[o] zlog_record动态一点
--- 1.1.2 ---
[o] 修正rule.c, path_buf封顶
--- 1.1.1 ---
[o] 修正rule.c, 不使用FILE*, 避免日志交错
--- 1.1.0 ---
[x] spec改为switch循环, 如果可能的话rule也照样--发现switch的效率不如函数指针
[x] 把__LINE__ 变成string--需要改接口
[o] 建立bit位来判断,无锁判断
[o] 寻找快速的方法把us, srcline变成字符串
[o] 在一开始就判断是否需要输出,
[o] 使用pthread_key_t线程私有变量来存储zlog_thread_t,仅有1%不到的提高
[o] 增加%D,缓存strftime的结果
[o] 缓存pid, tid的字符串形式
[o] 去掉rc的使用[redis]
[o] 对ZLOG_FMT和ZLOG_HEX清算,部分成功
--- 1.0.7 ---
[x] 自己实现部分的strftime,进一步提高效率--替换后发现vsnprintf消耗增加,未能超越原有strftime的效率
[o] %t显示为16进制
[o] 零碎的性能优化,10%把
--- 1.0.6 ---
[o] 每秒取一次localtime_r,加速1倍以上
--- 1.0.5 ---
[o] 修复1.0.4的问题,reopen文件时用读写锁保护
--- 1.0.4 ---
[o] 测试多线程的效率
[o] 缓存静态文件的FILE*和fd,优化,加速3倍
--- 1.0.3 ---
[o] 基于日志笔数自动刷新配置
[o] 基于日志笔数自动做sync到硬盘操作
--- 1.0.2 ---
[o] 增加同步写入到硬盘选项,打开后极为费时
--- 1.0.1 ---
[o] 采用配置文件作为锁文件
--- 1.0.0 ---
[o] 改变配置文件的布局,去掉@ &这种符号,改用[global],[format]这样的形式来
[o] 把reload改成原子性的,失败用旧的
[o] 优化spec_gen_msg部分, spec内采用自己写的buf_append对齐来代替buf_sprintf
[o] 引入__func__
[o] 文件的权限设置
[o] 输出函数自定义
--- 0.9 ---
[o] 采用更加面向对象的方法来写
[o] 使用arraylist来代替linklist为内部数据结构
[o] 改进配置文件的格式
[o] 打造线程安全的日志函数库
[o] 解决微秒毫秒在配置中的表示
[o] 把event并到thread内避免开内存
[o] 增加init读取配置文件的api
[o] default] format的解析,初始化全无的时候的输出,zlog_chk_conf的编写
[o] 把category独立出来
[o] 增加update接口
[o] buf的大小无法通过zlog_init动态的改变,可以zlog_update重建所有缓存解决,呵呵
[o] 调整文件创建权限,采用类似fopen的办法,为0666&(~umask)
[o] syslog输出,搞定但发现syslog暴慢
[o] 转档的模式,是否需要轮询等,解决为传统模式
[o] 增加zlog_profile接口,诊断配置内存
[o] 增加MDC,可配置的增加字段
[o] 测试buf被重写的时候,是否会导致后面的\0没加
[o] xlog要改名为zlog....
[o] 取一次ZLOG_ERROR_LOG和ZLOG_DEBUG_LOG,避免多次getenv
[o] zc_assert一般关闭,调试打开
[o] 增加!.*, 匹配未被匹配的分类
[o] priority->level
[o] level自定义
[o] rule syslog open
[o] default format移到全局配置
[o] reset level, 用arraylist来做试试看
[o] ylog, 更简单的接口, 改名为dzlog的一堆接口来解决
[o] zlog-gen-conf
[o] rotate控制个数
--- 废弃想法 ---
[x] 使用writev来写日志,提高效率,达到一次形成,多次输出的目的, writev内部也是开buffermemcpy
[x] 尝试信号量的方法来打成线程安全的转档互斥问题
[x] zlog.h变长参数宏的问题(参考glib的log解决)
[x] rule的dynamic] file可以从format获取
[x] 修改arraylist的读取长度,循环等
[x] 运行期间指定是否采用线程
[x] buf_append 优化——为了安全,不优化这个
[x] 用某种自动编译器以及文档生成器
[x] 输出到管道,有名管道和文件一样
[x] 打印堆栈。。可能需要语言支持
[x] zlog-input -c category -p priority -f conf
[x] 采用精细的reo en方法来建立用fo en来智能判断需不需要重开文件,操作系统本身已经做得够好,无须做