Easylogging++ Verbose日志详解

本文详细介绍了Easylogging++的Verbose日志,包括其特点、宏定义、级别设置、判断方法和vmodule分模块日志的配置。Verbose日志分为1-9共九个级别,默认不输出,可通过命令行参数或函数动态设置。VLOG系列宏用于记录不同级别,VLOG(0)默认开启。-vmodule用于指定文件和级别,支持通配符。注意Loggers::setVerboseLevel和Loggers::setVModules的使用及标志的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    Verbose日志不适用与于划分级别的日志记录,意思就是说在设置了标记:LoggingFlag::HierarchicalLoggin的日志记录中,即使阀值设置大于Verbose级别,甚至是设置成Unknown,也无法关闭Verbose级别日志的输出。同时,Verbose日志拥有专属的宏定义来记录日志,而不支持类似于LOG(VERBOSE)等宏定义。下面列出Verbose日志专属的宏定义:

  • VLOG(verbose-level)
  • CVLOG(verbose-level, loggerID)
  • VLOG_IF(condition, verbose-level)
  • CVLOG_IF(condition, verbose-level, loggerID)
  • VLOG_EVERY_N(n, verbose-level)
  • CVLOG_EVERY_N(n, verbose-level, loggerID)
  • VLOG_AFTER_N(n, verbose-level)
  • CVLOG_AFTER_N(n, verbose-level, loggerID)
  • VLOG_N_TIMES(n, verbose-level)
  • CVLOG_N_TIMES(n, verbose-level, loggerID)

   提示:Verbose日志同样支持DEBUG模式,上述所有宏定义都有与之对应的DEBUG模式的宏定义,在签名加上大写字母D即可。

 

理解Verbose日志的级别

   Verbose日志可以分为1~9共九个级别,而这九个级别最初是处于未激活状态的。所谓的未激活状态就是说在默认的情况下,这九个级别的Verbose日志是不会输出日志信息的,除非我们设置程序参数来激活它。而VLOG(0)虽然也可以记录Verbose日志,但是它在默认的情况下是可以输出日志信息的,所以0并不属于Verbose日志的级别。不过实践发现,即使把0理解成Verbose日志的级别也可以,即可以认为Verbose日志分为0-9共十个级别,只是0级别的日志是无法被禁止输出的,但是在vmodule分模块日志部分内容演示代码中有一种方法可以把VLOG(0)的输出也禁用了。

 

设置Verbose日志的级别

    在命令行参数中, -v 、 --verbose 、--v 、 -vmodule 都是用来设置Verbose日志的,这四个参数只能有一个生效,优先级高的会覆盖优先级低的(优先级: -v   >

<think>好的,我现在需要解决用户关于如何配置和使用verbose日志进行调试的问题。首先,用户提到了Android和可能的其他平台,但根据提供的引用,主要集中在Android和EasyLogging++库上。我需要结合这些引用信息,给出具体步骤和注意事项。 首先,用户可能需要知道在Android中如何开启verbose日志。根据引用3,华为手机默认不显示debug和verbose级别的日志,需要进入工程菜单设置。这需要详细说明步骤,包括拨号界面输入代码,勾选相关日志选项。同时,提醒用户不同型号可能操作不同。 其次,引用1提到Android的Log.v方法,所以需要说明在代码中如何使用Log.v输出verbose日志,并强调在正式发布时关闭这些日志以避免性能问题。 然后,用户可能还涉及其他平台,比如使用EasyLogging++库的情况。引用2详细说明了该库中verbose日志的配置,特别是关于标记的设置,比如DisableVModulesExtensions、AllowVerboseIfModuleNotSpecified和DisableVModules。需要解释如何通过命令行参数-vmodule来分模块控制日志级别,以及如何处理这些标记以确保配置生效。 还需要考虑通用配置建议,比如日志级别管理、过滤器和输出控制,以及调试后的关闭建议,避免生产环境遗留冗余日志。 可能的问题点包括:华为手机的特殊处理,EasyLogging++中标记的冲突,命令行参数的正确使用。需要逐一解释清楚,避免用户配置时出现意外情况。 最后,生成的相关问题要围绕用户可能进一步想了解的内容,比如不同日志级别的区别、分模块控制、关闭日志的方法,以及常见问题如日志不显示的解决方法。</think>### 配置和使用Verbose日志的步骤指南 #### 一、Android平台配置Verbose日志 1. **代码中输出Verbose日志** ```java Log.v("TAG", "Verbose级别日志内容"); // 使用Log.v方法输出Verbose级别日志[^1] ``` 2. **华为手机特殊设置** - 在拨号界面输入`*#*#2846579#*#*`进入工程菜单 - 选择`后台设置` > `LOG设置` - 勾选`AP日志`、`充电日志`、`休眠日志`[^3] - 注意:部分华为机型需重启应用或手机才能生效 3. **ADB过滤Verbose日志** ```bash adb logcat *:V # V表示Verbose级别,显示所有级别≥Verbose日志 ``` #### 二、EasyLogging++库配置(C++场景) ```cpp // 初始化配置示例 INITIALIZE_EASYLOGGINGPP el::Configurations conf; conf.setGlobally(el::ConfigurationType::Enabled, "true"); conf.setGlobally(el::ConfigurationType::ToFile, "false"); el::Loggers::setVerboseLevel(9); // 设置Verbose级别阈值[^2] // 关键标记处理(需在初始化前设置) el::Loggers::removeFlag(el::LoggingFlag::AllowVerboseIfModuleNotSpecified); // 避免未指定模块输出全部Verbose日志[^2] ``` #### 三、通用配置建议 1. **日志级别管理** ```mermaid graph LR A[日志级别] --> B[Verbose] A --> C[Debug] A --> D[Info] A --> E[Warning] A --> F[Error] ``` 2. **分模块控制(EasyLogging++)** ```bash # 启动命令示例 ./app -vmodule=module1=5,module2=3 # module1设置Verbose级别5,module2级别3[^2] ``` 3. **生产环境注意事项** ```python # 伪代码示例:通过编译开关控制日志 if DEBUG_MODE: enable_verbose_logging() else: disable_verbose_logging() ``` #### 四、调试流程示例 1. 在关键代码路径插入Verbose日志 2. 通过`adb logcat -s TAG:V`实时监控 3. 使用grep过滤特定关键字: ```bash adb logcat | grep "PaymentFlow" ``` 4. 分析日志时间戳定位性能瓶颈
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值