Rails 日志按天分割

http://stackoverflow.com/questions/4883891/ruby-on-rails-production-log-rotation



 

 logrotate 程序是一个日志文件管理工具。用来把旧的日志文件删除,并创建新的日志文件,我们把它叫做“转储”。我们可以根据日志文件的大小,也可以根据其天数来转储,这个过程一般通过 cron 程序来执行。

 

先看配置文件

$vi /etc/logrotate.conf

里面有一行

include /etc/logrotate.d/

logrotate会读取独立的子任务的配置

 

下面我们手动执行一个logrotate任务

切换到/etc/logrotate.d/目录下

$ touch test

$ vi test

内容如下

/tmp/test.log{  

    missingok  

    create 0640 root root  

    rotate 50  

    size=1048576k  

}

切换到/tmp/目录 创建一个test.log 大小10G

$ dd if=/dev/zero of=test.log bs=1024 count=10485760

现在,大小10G的日志文件test.log已经就绪,/etc/logrotate.d/下面针对这个日志文件的子任务配置test文件也已准备就绪。

 

执行命令: logrotate -v /etc/logrotate.conf

发现 /tmp 目录下出现了test.log.1 大小是10G test.log大小是0

 

再生成一个test.log 大小2G

$ dd if=/dev/zero of=test.log bs=1024 count=2097152

执行命令:$ logrotate -v /etc/logrotate.conf

发现 /tmp 目录下出现了test.log.2 大小是10G 之前的test.log.1 大小变成了2G

 

原理

logrotate根据设置的文件大小,当超过这个大小时,转储成另一个文件。

logrotate根据设置的rotate值,自动检测日志文件的名字,旧的分割文件名字每次增加1,新分割出来的文件名字是1

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值