skynet日志管理

skynet日志配置

 在config里面可以配置自己的日志管理
 logger:日志输出目录
 daemon 配置 daemon = "./skynet.pid" 可以以后台模式启动 skynet 。
             logger = “./skynet.log"配置后台模式下日志输出的目录文件
 这样我们在后台模式下启动的日志便输出到当前目录下的skynet.log文件里面。这样做的问题是当我们的日志文件过大它不会自动删除,对系统的影响很大。我们现在想要它能按天数保存日志,超过一周的便删除。以skynet现在的机制来说,还面临一个问题,就是当我们把skynet.log这个文件cp了之后然后删除再重建一个skynet.log的话日志是不会打印在这个文件里面的(不仅仅是skynet日志,其它的日志以后出现这个问题,以nohup后台运行程序的日志也会一样),我们需要重启一下skynet服务器才能打印。

问题

文件过大,需要用来把旧的日志文件删除(备份),并创建新的日志文件,这个过程称为“转储”。
而这个过程我们需要的操作是先cp,然后删除,在创建新的日志文件,这里需要重启skynet。

方法

使用logrotate:

cd /etc/logrotate.d/
touch skynet_log
.../skynet.log {
    daily #按天 转储
    rotate 7 #超过7个日志文件删除最旧的一个
    missingok #日志丢失不报错
    dateext #将日期加到日志后缀
    notifempty
    nocompress
    create #创建新的日志文件
    postrotate
        #需要执行的shell命令或者脚本
    endscript
}
vim /etc/crontab
#可以看到
 25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
 表示每天625执行skynet_log这个脚本(按天转储)
 执行这个shell命令logrotate --force ./skynet_log
 可以现在就执行这个skynet_log脚本,看下配置是否正确

参考:
skynet wiki config
linux中logrotate日志管理工具详解

你可能感兴趣的:(skynet)