当前位置 主页 > 服务器问题 > Linux/apache问题 >

    限制 Apache日志文件大小的方法

    栏目:Linux/apache问题 时间:2018-09-12 11:03

    access.log,件在 WEB 服务器运行一段时间之后会达到几十兆甚至上百兆,如果Apache运行有错误,error.log也会增大到几十兆,我们知道系统读写一个大的文本文件是非常耗内存的,因此限定日志文件大小十分必要。 通常我们是在{$apache}/conf/httpd.conf中设置Apache的参数,然而我们并没有发现可以设置日志文件大小的配置指令,通过参考http://httpd.apache.org/docs/2.0/programs/rotatelogs.html,可以用apache 自己的程序 rotatelogs.exe(位于 {$apache}/bin/目录下),来限制日志文件的大小。
    Usage: rotatelogs [-l] [offset minutes from UTC] or
    Add this:
    TransferLog "|rotatelogs /some/where 86400"
    or
    TransferLog "|rotatelogs /some/where 5M"
    to httpd.conf. The generated name will be /some/where.nnnn where nnnn is the system time at which the log nominally starts (N.B. if using a rotation time, the time will always be a multiple of the rotation time, so you can synchronizecron scripts with it). At the end of each rotation time or when the file size is reached a new log is started.
    在 Windows 下的设置例子如下:
    # 限制错误日志文件为 1M
    ErrorLog "|bin/rotatelogs.exe -l logs/error-%Y-%m-%d.log 1M"
    # 每天生成一个错误日志文件
    #ErrorLog "|bin/rotatelogs.exe -l logs/error-%Y-%m-%d.log 86400"
    # 限制访问日志文件为 1M
    CustomLog "|bin/rotatelogs.exe -l logs/access-%Y-%m-%d.log 1M" common
    # 每天生成一个访问日志文件
    #CustomLog "|bin/rotatelogs.exe -l logs/access-%Y-%m-%d.log 86400" common
    linux/Unix下 应该类似。