版权声明:guojawee https://blog.csdn.net/weixin_36750623/article/details/84328631
日志作用
Linux C下的程序员,很少使用gdb调试程序,一般都使用日志调试程序
程序错误分为:编译时错误、运行时错误(将errno保存到日志中)、逻辑错误(最难调试,将程序的运行状态都存到日志)
- 开发过程中
调试错误
更好的理解程序:运行流程 - 运行过程中
诊断系统故障并处理
记录系统运行状态
日志级别
- TRACE:指出比Debug粒度更细的一些信息事件(开发过程中使用)
- Debug:指出细粒度信息事件对调试应用程序是非常有帮助的(开发过程中使用)
- INFO:表明消息在粗粒度级别上突出强调应用程序的运行过程
- WARN:系统能正常运行,但可能会出现潜在错误的情形
- ERROR:指出虽然发生错误事件,但仍然不影响系统的继续运行
- FATAL:指出每个严重的错误事件将会导致应用程序的退出
注解:muduo库的日志级别是INFO,可以修改logging.cc中的initLogLevel函数修改日志级别,见下
Logger::LogLevel initLogLevel()
{
return Logger::TRACE; //日志级别修改成TRACE
/*
if (::getenv("MUDUO_LOG_TRACE"))
return Logger::TRACE;
else if (::getenv("MUDUO_LOG_DEBUG"))
return Logger::DEBUG;
else
return Logger::INFO;
*/
}
#define LOG_TRACE if (muduo::Logger::logLevel() <= muduo::Logger::TRACE) \
muduo::Logger(__FILE__, __LINE__, muduo::Logger::TRACE, __func__).stream()
__FILE__ 在哪个文件
__LINE__ 在哪一行
muduo::Logger::TRACE 什么级别
__func__ 哪个函数
日志滚动LogFile
日志滚动条件
- 文件大小(每写满1G,换下一个文件)
- 时间(每天零点新建一个日志文件,不论前一个文件是否写满)