终于找到了如何突破cronolog 2G的限制

终于找到了如何突破cronolog 2G的限制

apache采用的是2.2.3,测试是支持写2G以上日志的
cronolog最新的版本是2002年的,估计那老兄不继续维护了,采用如下方式写日志的时候是写到2150726147字节就下不下去了
CustomLog "|/usr/local/sbin/cronolog /home/logs/lrc.ttplayer.com/access_log.%Y%m%d" combined  env=!dontlog

然后看了网上说的什么采用如下方式重新编译cronolog
CHOST="i686-pc-linux-gnu"
CFLAGS="-march=i686 -O3 -pipe -fomit-frame-pointer -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE"
CXX=gcc CXXFLAGS="-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE"
./configure --prefix=/usr/local/cronolog-1.6.2
然后测试还是不成

最后一个牛逼的人物出现,帮我看了看cronolog的代码后提出修改如下,然后重新编译cronolog后可以突破2G了
1. 修改src/cronolog.c
2. 查找log_fd = open(pfilename, O_WRONLY|O_CREAT|O_APPEND, FILE_MODE);一共是两处
    修改为如下log_fd = open64(pfilename, O_WRONLY|O_CREAT|O_APPEND, FILE_MODE);
    如果编译不通过,可能是您的gcc版本问题,可以修改成如下
   log_fd = open(pfilename, O_WRONLY|O_CREAT|O_APPEND|O_LARGEFILE, FILE_MODE);
3. 修改后重新编译,然后重启apache,可以支持2G以上分割应该,我这里测试通过了反正
32位不支持2G,64位才支持。
log_fd = open64(pfilename, O_WRONLY|O_CREAT|O_APPEND, FILE_MODE);
确实.........................
你切了都2G,怎么分析?

能不能在优化一下子?
已经是尽量优化了,来源和客户端信息都不记录的话一天也差不多20多G,正好这个哥们在win下写过针对我们所要数据的日志分析软件,现在让他写个linux用的就可以了
看论坛里关于2G的问题不少,但大家给的办法大多是通过按时间继续分割或者要求优化等办法,其实最后分析还是按日的,也得合并,所以在顺利的解决这个问题后希望能分享一下,让以后需要的朋友不至于发愁
确是可以通过2G的限制。

不过日志还是易小不易大,越小越好,没有效率最高:)
用cronolog1.70吧
在这里:http://cronolog.org/patches/cronolog-1.7.0-beta.tar.gz
直接就支持log文件大于2G
我用的是beta版
完全没有问题
不错,找到解决方案了
这么的日志
最好把日子写入数据库,之后在分析数据库吧
cronolog能分析数据库么