如何将Apache日志文件按时间分隔存储
2017-12-12 14:54
295 查看
如何将Apache日志文件按时间分隔存储
apahce的日志文件一般默认为单一文件。如果日志信息太多,编辑器就无法正常打开了,也不能很好的查看。
我们可以将日志文件按照天去划分,每天保存一个新文件。当然如果需要间隔更短或更长,比如按每小时存储也是没有问题的,具体就看每个人的需求了。
首先需要用到apache中的mod_log_config模块,具体可以查看apache官网的介绍,如下:
http://httpd.apache.org/docs/current/mod/mod_log_config.html
httpd.conf配置修改
Linux
ErrorLog "| /usr/bin/rotatelogs /var/log/example/error_%Y_%m_%d_log 86400 480"
CustomLog "| /usr/bin/rotatelogs /var/log/example/access_%Y_%m_%d_log 86400 480" common
Windows
ErrorLog "|C:/apache/bin/rotatelogs.exe c:/apache/logs/error_%Y_%m_%d.log 86400 480"
CustomLog "|C:/apache/bin/rotatelogs.exe c:/apache/logs/access_%Y_%m_%d.log 86400 480" common
关于rotatelogs的写法说明
rotatelogs logfile [ rotationtime [ offset ]] | [ filesizeM ]
选项
logfile
日志文件名,如果logfile中包含’%',则它会被视为用于的strftime(3)的格式字串;否则,它会被自动加上以秒为单位 的.nnnnnnnnnn后缀。这两种格式都表示新的日志开始使用的时间。
[ rotationtime [ offset ]]
(即以时间间隔进行分隔)
rotationtime
日志文件回卷的以秒为单位的间隔时间
offset
相对于UTC的时差的分钟数。如果省略,则假定为0,并使用UTC时间。国内一般就用480,+8时区。
[ filesizeM ]
(即以文件大小进行分隔)
filesizeM
指定回卷时以兆字节为单位的后缀字母M的文件大小,而不是指定回卷时间或时差。
下列日志文件格式字串可以为所有的strftime(3)实现所支持,见各种扩展库对应的strftime(3)的手册。
%A 星期名全称
%a 3个字符的星期名
%B 月份名的全称
%b 3个字符的月份名
%c 日期和时间
%d 2位数的一个月中的日期数
%H 2位数的小时数(24小时制)
%I 2位数的小时数(12小时制)
%j 3位数的一年中的日期数
%M 2位数的分钟数
%m 2位数的月份数
%p am/pm 12小时制的上下午
%S 2位数的秒数
%U 2位数的一年中的星期数(星期天为一周的第一天)
%W 2位数的一年中的星期数(星期一为一周的第一天)
%w 1位数的星期几(星期天为一周的第一天)
%X 时间
%x 日期
%Y 4位数的年份
apahce的日志文件一般默认为单一文件。如果日志信息太多,编辑器就无法正常打开了,也不能很好的查看。
我们可以将日志文件按照天去划分,每天保存一个新文件。当然如果需要间隔更短或更长,比如按每小时存储也是没有问题的,具体就看每个人的需求了。
首先需要用到apache中的mod_log_config模块,具体可以查看apache官网的介绍,如下:
http://httpd.apache.org/docs/current/mod/mod_log_config.html
httpd.conf配置修改
Linux
ErrorLog "| /usr/bin/rotatelogs /var/log/example/error_%Y_%m_%d_log 86400 480"
CustomLog "| /usr/bin/rotatelogs /var/log/example/access_%Y_%m_%d_log 86400 480" common
Windows
ErrorLog "|C:/apache/bin/rotatelogs.exe c:/apache/logs/error_%Y_%m_%d.log 86400 480"
CustomLog "|C:/apache/bin/rotatelogs.exe c:/apache/logs/access_%Y_%m_%d.log 86400 480" common
关于rotatelogs的写法说明
rotatelogs logfile [ rotationtime [ offset ]] | [ filesizeM ]
选项
logfile
日志文件名,如果logfile中包含’%',则它会被视为用于的strftime(3)的格式字串;否则,它会被自动加上以秒为单位 的.nnnnnnnnnn后缀。这两种格式都表示新的日志开始使用的时间。
[ rotationtime [ offset ]]
(即以时间间隔进行分隔)
rotationtime
日志文件回卷的以秒为单位的间隔时间
offset
相对于UTC的时差的分钟数。如果省略,则假定为0,并使用UTC时间。国内一般就用480,+8时区。
[ filesizeM ]
(即以文件大小进行分隔)
filesizeM
指定回卷时以兆字节为单位的后缀字母M的文件大小,而不是指定回卷时间或时差。
下列日志文件格式字串可以为所有的strftime(3)实现所支持,见各种扩展库对应的strftime(3)的手册。
%A 星期名全称
%a 3个字符的星期名
%B 月份名的全称
%b 3个字符的月份名
%c 日期和时间
%d 2位数的一个月中的日期数
%H 2位数的小时数(24小时制)
%I 2位数的小时数(12小时制)
%j 3位数的一年中的日期数
%M 2位数的分钟数
%m 2位数的月份数
%p am/pm 12小时制的上下午
%S 2位数的秒数
%U 2位数的一年中的星期数(星期天为一周的第一天)
%W 2位数的一年中的星期数(星期一为一周的第一天)
%w 1位数的星期几(星期天为一周的第一天)
%X 时间
%x 日期
%Y 4位数的年份
相关文章推荐
- 如何设定文件共享时每个连接的会话时间
- 创业公司如何构建一个分布式文件存储系统
- 如何把视频文件直接存储到mysql数据库里
- oracle中PLSQL存储过程中如何使用逗号分隔的集合(逗号分隔字符串转换为一个集合)
- VS2010(AE10.0)打包:未能找到文件, 存储空间不足,无法完成此操作——WIN7系统如何修改虚拟内
- 如何在mysql中存储音乐和图片文件
- PHP文件目录操作问题 列出目录下的东西时 如何先列目录,再列文件 文件也按照名称或时间排序或者类型
- C#如何向MongoDB GridFs中存储文件
- 上传文件,时间超时 Apache 如何设置保持连接
- ibdata1文件非常大如何解决,ibdata单独存储
- 如何将SL的image保存到SL的独立存储文件系统
- Nginx如何配置静态文件过期时间
- FM app在保存录音文件时,保存的位置如何实现跟随默认存储位置的改变而改变?
- Linux下如何查看文件秒级修改及访问时间
- 以字符串存储的时间值,如何实现你想要的格式查询出来
- android私有存储目录下的文件如何让其他程序有权限打开
- 如何修改Outlook2013/2016的OST文件存储路径
- 如何在Centos7上安装Glusterfs分布式文件存储系统
- Java序列化 如何把多个对象存储在一个文件中
- Qt下如何修改文件的时间(全平台修改)