如何使用 glog(github.com/golang/glog) 拆分日志文件

由于我的服务器可能会运行很长时间,因此日志文件会太大。有没有办法根据大小或时间切割原木?


达令说
浏览 345回答 2
2回答

慕沐林林

由于您担心日志文件很大,请尝试条件日志记录或偶尔日志记录可以使用以下宏来执行条件日志记录:LOG_IF(INFO,&nbsp;num_cookies&nbsp;>&nbsp;10)&nbsp;<<&nbsp;"Got&nbsp;lots&nbsp;of&nbsp;cookies";仅当变量num_cookies超过 10 时,才会记录“收到大量 Cookie”消息。如果一行代码执行多次,则仅按特定时间间隔记录消息可能很有用。这种日志记录对于信息性消息最有用。LOG_EVERY_N(INFO,&nbsp;10)&nbsp;<<&nbsp;"Got&nbsp;the&nbsp;"&nbsp;<<&nbsp;google::COUNTER&nbsp;<<&nbsp;"th&nbsp;cookie";上面的行在1日,11日,21日,...执行次数。请注意,特殊的 google::COUNTER 值用于标识正在发生的重复。可以将条件日志记录和偶尔日志记录与以下宏结合使用。LOG_IF_EVERY_N(INFO,&nbsp;(size&nbsp;>&nbsp;1024),&nbsp;10)&nbsp;<<&nbsp;"Got&nbsp;the&nbsp;"&nbsp;<<&nbsp;google::COUNTER &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<<&nbsp;"th&nbsp;big&nbsp;cookie";除了每 n 次输出一条消息之外,您还可以将输出限制为前 n 次:LOG_FIRST_N(INFO,&nbsp;20)&nbsp;<<&nbsp;"Got&nbsp;the&nbsp;"&nbsp;<<&nbsp;google::COUNTER&nbsp;<<&nbsp;"th&nbsp;cookie";输出执行前 20 次的日志消息。同样,google::COUNTER标识符指示正在发生的重复。您可以在此处查看以获取更多信息

缥缈止盈

现在我找到了一种拆分日志的方法。使用第三方库。(例如:https://github.com/natefinch/lumberjack)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go