muduo_base代码剖析之日志类封装

版权声明:guojawee https://blog.csdn.net/weixin_36750623/article/details/84328631

日志作用

Linux C下的程序员,很少使用gdb调试程序,一般都使用日志调试程序
程序错误分为:编译时错误、运行时错误(将errno保存到日志中)、逻辑错误(最难调试,将程序的运行状态都存到日志)

  1. 开发过程中
    调试错误
    更好的理解程序:运行流程
  2. 运行过程中
    诊断系统故障并处理
    记录系统运行状态

日志级别

  1. TRACE:指出比Debug粒度更细的一些信息事件(开发过程中使用)
  2. Debug:指出细粒度信息事件对调试应用程序是非常有帮助的(开发过程中使用)
  3. INFO:表明消息在粗粒度级别上突出强调应用程序的运行过程
  4. WARN:系统能正常运行,但可能会出现潜在错误的情形
  5. ERROR:指出虽然发生错误事件,但仍然不影响系统的继续运行
  6. 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

日志滚动条件

  1. 文件大小(每写满1G,换下一个文件)
  2. 时间(每天零点新建一个日志文件,不论前一个文件是否写满)

猜你喜欢

转载自blog.csdn.net/weixin_36750623/article/details/84328631