美文网首页
Apache日志切割

Apache日志切割

作者: 石乐志的LK | 来源:发表于2017-08-21 17:37 被阅读0次

    为什么要分割日志?

    Apache中的网站,访问日志都是在一个文件中包含着的,时间一长,文件会特别大,根本无法打开查看了。

    日志的格式

    cat /usr/local/apache2/conf/httpd.conf | grep LogFormat


    %A星期名全称(本地的)

    %a         3个字符的星期名(本地的)

    %B         月份名的全称(本地的)

    %b           3个字符的月份名(本地的)

    %c          日期和时间(本地的)

    %d        2位数的一个月中的日期数

    %H        2位数的小时数(24小时制)

    %I         2位数的小时数(12小时制)

    %j           3位数的一年中的日期数

    %M         2位数的分钟数

    %m         2位数的月份数

    %p          am/pm12小时制的上下午(本地的)

    %S           2位数的秒数

    %U           2位数的一年中的星期数(星期天为一周的第一天)

    %W          2位数的一年中的星期数(星期一为一周的第一天)

    %w           1位数的星期几(星期天为一周的第一天)

    %X            时间(本地的)

    %x            日期(本地的)

    %Y           4位数的年份

    %y            2位数的年份

    %Z           时区名

    %%          符号"%"本身


    配置日志分割文件

    vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

    这里使用了日志分割工具/usr/local/apache2/bin/rotatelogs,其中 管道符代表交给日志分割工具来处理,%Y年份%m月份%d日,86400代表一天的秒数

    rotatelogs -l logfile [ rotationtime [ offset ]] | [ filesizeM ]

    -l    使用本地时间代替GMT时间作为时间基准。注意:在一个改变GMT偏移量(比如夏令时)的环境中使用-l会导致不可预料的结果。

    rotationtime 日志文件滚动的以秒为单位的间隔时间。  

    offset    相对于UTC的时差的分钟数。如果省略,则假定为0,并使用UTC时间

    filesizeM      指定以filesizeM文件大小滚动,而不是按照时间或时差滚动。

    ErrorLog  "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/aaa-error-%Y%m%d.log 86400"

    CustomLog "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/aaa-access-%Y%m%d.log 86400" combined

    据我了解日志的格式有common和combind两种,暂时不知有啥区别,知道的大佬可以给我留言哦。

    注意事项

    当你配置好之后,重启服务器后,去访问网页之后才会生成CustomLog,但是是不会生成ErrorLog的,只有你访问出现错误(例如你访问一个此网站上不存在的资源时)才会生成错误日志,我还纠结了好久,醉了...

    相关文章

      网友评论

          本文标题:Apache日志切割

          本文链接:https://www.haomeiwen.com/subject/ahchdxtx.html