当前位置: 首页 > wzjs >正文

开发手机网站信息流优化师前景

开发手机网站,信息流优化师前景,无锡朝阳网站建设,制作相册影集下载glog 是 Google 开源的一个 C 日志库,全称 Google Logging Library,适用于大型 C 项目,支持等级日志输出(INFO/WARNING/ERROR/FATAL)、日志文件输出、条件日志、调试检查、堆栈追踪等功能。 一、glog 特性简述 多级别…

glog 是 Google 开源的一个 C++ 日志库,全称 Google Logging Library,适用于大型 C++ 项目,支持等级日志输出(INFO/WARNING/ERROR/FATAL)、日志文件输出、条件日志、调试检查、堆栈追踪等功能。


一、glog 特性简述

  • 多级别日志输出:LOG(INFO), LOG(WARNING), LOG(ERROR), LOG(FATAL)
  • 检查宏:CHECK, CHECK_EQ, CHECK_NE, 等
  • 条件日志:LOG_IF, LOG_EVERY_N, LOG_FIRST_N
  • 可输出到标准输出、日志文件或自定义路径
  • 支持线程安全、堆栈跟踪(FATAL 时)

二、不同环境安装方法

Ubuntu / Debian

sudo apt install libgoogle-glog-dev

Windows + vcpkg

vcpkg install glog

CMake 配置(跨平台)

find_package(glog REQUIRED)
target_link_libraries(your_target PRIVATE glog::glog)

三、基础用法示例

初始化和基本日志

#include <glog/logging.h>int main(int argc, char* argv[]) {google::InitGoogleLogging(argv[0]);// 日志输出等级LOG(INFO)    << "这是一个信息日志";LOG(WARNING) << "这是一个警告日志";LOG(ERROR)   << "这是一个错误日志";// 致命错误,程序将中止// LOG(FATAL) << "致命错误";return 0;
}

默认日志输出到:

  • 屏幕(stderr
  • 文件:/tmp/<program>.<severity>.<pid>.log

四、日志等级与控制

设置最小输出等级

FLAGS_minloglevel = 1;  // 0: INFO, 1: WARNING, 2: ERROR, 3: FATAL

也可通过命令行参数控制:

./your_program --minloglevel=2

五、检查宏 CHECK 系列(崩溃检查)

int a = 5, b = 3;
CHECK(a > b) << "a 应该大于 b,否则程序终止";
CHECK_EQ(a, 5);   // 等于
CHECK_NE(a, b);   // 不等于
CHECK_LT(b, a);   // 小于
CHECK_GE(a, 5);   // 大于等于
  • 检查失败会立即终止程序
  • CHECK_* 会打印出当前行数、错误堆栈

六、条件日志(调试/频率控制)

只在条件为真时打印

int x = 10;
LOG_IF(INFO, x > 5) << "x 大于 5";

每 N 次打印一次

for (int i = 0; i < 100; ++i) {LOG_EVERY_N(INFO, 10) << "第 " << i << " 次";
}

前 N 次打印

for (int i = 0; i < 100; ++i) {LOG_FIRST_N(INFO, 3) << "仅输出前 3 次,第 " << i << " 次";
}

七、自定义日志目录/文件

FLAGS_log_dir = "/your/log/dir";

或者在命令行指定:

./your_program --log_dir=./log

日志文件默认命名为:

<program>.<level>.<hostname>.<user>.log.<timestamp>.<pid>

八、线程安全和性能建议

  • glog 日志是线程安全的
  • 在多线程程序中可放心使用
  • 高性能场景建议控制 LOG_EVERY_N 或禁用 INFO 日志

九、终止时打印堆栈(仅 FATAL

LOG(FATAL)CHECK 失败时:

  • 会自动打印调用堆栈
  • 在 Linux 下需支持 backtrace(),可以通过 glog 的堆栈解析辅助程序查看

十、完整示例代码

#include <iostream>
#include <glog/logging.h>void test_log() {int a = 10, b = 5;LOG(INFO) << "程序启动...";LOG_IF(WARNING, a > b) << "a 大于 b";for (int i = 0; i < 30; ++i) {LOG_EVERY_N(INFO, 10) << "循环中,第 " << i << " 次";}CHECK_EQ(a, 10) << "a 不为 10,出错!";
}int main(int argc, char* argv[]) {// 初始化 gloggoogle::InitGoogleLogging(argv[0]);// 设置日志路径FLAGS_log_dir = "./log";         // 日志文件保存目录FLAGS_alsologtostderr = 1;       // 同时输出到终端test_log();// 清理google::ShutdownGoogleLogging();return 0;
}

十一、关闭日志或静默模式

在生产环境中关闭某些日志:

FLAGS_minloglevel = 2;      // 仅 ERROR 与 FATAL
FLAGS_logtostderr = 0;      // 不输出到终端
FLAGS_alsologtostderr = 0;  // 不附加输出

十二、典型 glog 与 gflags 组合(推荐)

glog 常与 gflags 一起使用,用于命令行参数解析:

#include <gflags/gflags.h>
#include <glog/logging.h>DEFINE_string(config, "config.json", "配置文件路径");int main(int argc, char* argv[]) {google::InitGoogleLogging(argv[0]);gflags::ParseCommandLineFlags(&argc, &argv, true);LOG(INFO) << "配置文件:" << FLAGS_config;return 0;
}

总结:何时用 glog?

场景推荐使用
开发调试日志LOG(INFO) 等级
检查条件崩溃CHECK, CHECK_EQ
定期日志LOG_EVERY_N, LOG_IF
发布版日志保存设置 --log_dir 输出日志
日志静默控制使用 FLAGS_minloglevel
http://www.dtcms.com/wzjs/115228.html

相关文章:

  • 网页编辑框seo搜索引擎排名优化
  • 个人网站示例微信营销典型案例
  • 南京公司网站建设平台百度搜索网址
  • 小米的企业网站建设思路有什么推广产品的渠道
  • 免费试用网站制作湖南有实力seo优化哪家好
  • 庞各庄网站建设长沙市seo百度关键词
  • 德阳网站建设公司怎么建公司网站
  • 网站后台管理系统栏目位置有什么推广软件
  • 怎么做二十八页美食网站会员制营销方案
  • 做亳州旅游网站的目的网络营销策划公司
  • 如东县文化馆网站建设东莞最新疫情
  • wordpress ajax登录页面百度seo教程
  • 扬州市广陵区建设局网站肇庆网站建设
  • 公司做网站需要准备什么杭州百度推广代理公司哪家好
  • 怎样在百度上做网站怎么做网站免费的
  • pycharm网站开发优化网站怎么真实点击
  • 做淘客网站需要营业执照吗制作网页用什么软件
  • 重庆潼南网站建设哪家好成人电脑基础培训班
  • 营销型网站设计难不难市场调研报告ppt
  • 点广告挣钱网站有哪些seo实战教程
  • 做静态网站的参考文献客户关系管理系统
  • 淮安市住房和城乡建设局网站首页东莞百度seo推广公司
  • 个人网站备案资料产品推广步骤
  • 深圳做网站 创同盟百度客服中心人工在线
  • 做互联网产品和运营必备的网站百度移动应用
  • 做调查赚钱靠谱的网站有哪些百度安装
  • 网易企业邮箱登入入口南京百度关键字优化价格
  • 人和动物做的网站百度推广搜索排名
  • 企业网站建设市场的另一面病毒式营销案例
  • 网站设计是什么专业发帖推广哪个平台好