The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
Junjunya

beego 日志文件被删除后,怎么自动创建一个?

  •  
  •   Junjunya · Mar 26, 2019 · 3013 views
    This topic created in 2630 days ago, the information mentioned may be changed or developed.
    RT ,beego 开发的 api 服务,上线后第二天发现日志没有记录下来。

    排查了一番,确定是 每天的日志打包脚本会把日志给 mv 走,然后 beego 不会重新创建日志文件, 来问下大佬有啥好的解决方案。
    当前的方案是打算,自己在程序里面写定时任务,在日志打包完之后重启程序。
    5 replies    2019-03-27 09:41:29 +08:00
    truehyp
        1
    truehyp  
       Mar 26, 2019
    日志脚本打包脚本里面 cp log,然后清空日志文件
    monsterxx03
        2
    monsterxx03  
       Mar 26, 2019
    打包脚本移走日志后给你的 service 发一个 signal (比如 kill -USR1 `cat /var/run/web.pid`), service 监听这个 signal, 重新创建日志文件. logrotate 处理 nginx 日志就是这样
    Junjunya
        3
    Junjunya  
    OP
       Mar 26, 2019
    @truehyp @monsterxx03

    因为线上还有大量以前的项目,所以主管希望在尽量不改动日志处理脚本的情况下解决这个问题。
    当前看来,是没啥更好的方案了
    EscYezi
        4
    EscYezi  
       Mar 26, 2019 via iPhone
    再写一个脚本,定时扫描指定目录是否有日志文件,没有就创建(
    Junjunya
        5
    Junjunya  
    OP
       Mar 27, 2019
    @EscYezi 这个方案也不行,beego 日志是读取了文件的句柄,并且删除日志文件后 不会判断文件是否还存在。

    现在的处理方案是 在 beego 里面自己启动定时任务,如果日志文件没有了,重新对日志配置进行初始化
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3087 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 13:36 · PVG 21:36 · LAX 06:36 · JFK 09:36
    ♥ Do have faith in what you're doing.