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. 修改cronolog-1.6.2/src/cronolog.c(cronolog.c文件在编译前cronolog-1.6.2包里面的,因此需要重新编译)

2. 查找log_fd = open(pfilename, O_WRONLY|O_CREAT|O_APPEND, FILE_MODE);

    一共是两处:

      391     DEBUG(("%s (%d): using log file \"%s\" from %s (%d) until %s (%d) (for %d secs)\n",
    392            timestamp(time_now), time_now, pfilename,
    393            timestamp(start_of_period), start_of_period,
    394            timestamp(*pnext_period), *pnext_period,
    395            *pnext_period - time_now));
    396 
    397     log_fd = open(pfilename, O_WRONLY|O_CREAT|O_APPEND, FILE_MODE);
    398 
    399 #ifndef DONT_CREATE_SUBDIRS
    400     if ((log_fd < 0) && (errno == ENOENT))
    401     {
    402         create_subdirs(pfilename);
    403         log_fd = open(pfilename, O_WRONLY|O_CREAT|O_APPEND, FILE_MODE);
    404     }
    405 #endif
    修改为如下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以上分割应该,我这里测试通过了反正。