问题描述
因为我的服务器可能会运行很长时间,所以日志文件会太大。有什么办法可以根据大小或时间来切割日志吗?@H_502_1@
解决方法
因为您担心日志文件很大,请尝试条件日志记录或偶尔日志记录 您可以使用以下宏来执行条件日志记录:
LOG_IF(INFO,num_cookies > 10) << "Got lots of cookies";
仅当变量 num_cookies 超过 10 时才会记录“Got lot of cookies”消息。如果一行代码被多次执行,则仅以特定时间间隔记录一条消息可能会很有用。这种日志记录对于信息性消息最有用。
LOG_EVERY_N(INFO,10) << "Got the " << google::COUNTER << "th cookie";
上面的行在第 1、11、21、... 次执行时输出日志消息。请注意,特殊的 google::COUNTER 值用于标识正在发生的重复。
您可以将条件记录和临时记录与以下宏结合使用。
LOG_IF_EVERY_N(INFO,(size > 1024),10) << "Got the " << google::COUNTER
<< "th big cookie";
除了每 n 次输出一条消息之外,您还可以将输出限制为前 n 次出现:
LOG_FIRST_N(INFO,20) << "Got the " << google::COUNTER << "th cookie";
输出执行前 20 次的日志消息。同样,google::COUNTER 标识符指示正在发生的重复。
您可以查看here了解更多信息
,现在我找到了一种拆分日志的方法。
使用第三方库。(例如:https://github.com/natefinch/lumberjack
)