chromium log相关

如何打开chromium里面的log?


我们看到代码里面很多LOG(),所以要先找到LOG的定义。

LOG定义在Assertions.h里面。LOG是由条件宏控制的


如果非debug版本,如下代码

#ifdef NDEBUG //release版本会定义NDEBUG=1
/* Disable ASSERT* macros in release mode. */
#define ASSERTIONS_DISABLED_DEFAULT 1
#else
#define ASSERTIONS_DISABLED_DEFAULT 0
#endif


LOG宏定义如下

/* LOG */

#if COMPILER(MSVC7_OR_LOWER)
#define LOG() ((void)0)
#elif COMPILER(WINSCW)
#define LOG(arg...) ((void)0)
#elif LOG_DISABLED
#define LOG(channel, ...) ((void)0)
#else
#define LOG(channel, ...) WTFLog(&JOIN_LOG_CHANNEL_WITH_PREFIX(LOG_CHANNEL_PREFIX, channel), __VA_ARGS__)
#define JOIN_LOG_CHANNEL_WITH_PREFIX(prefix, channel) JOIN_LOG_CHANNEL_WITH_PREFIX_LEVEL_2(prefix, channel)
#define JOIN_LOG_CHANNEL_WITH_PREFIX_LEVEL_2(prefix, channel) prefix ## channel
#endif


由于LOG_DISABLED就是1,LOG就是void


即使debug版本,LOG如果要输出,还需要打开channel。channel的打开需要命令行里面加上 "--webcore-log-channels",后跟要打开的channel

代码如下

WebKitThread::InternalWebKitThread::Init
	  webkit_glue::EnableWebCoreLogChannels(
      CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
          switches::kWebCoreLogChannels));


太麻烦了

在release版本里面,我们自己定义LOG吧

简单定义

#undef LOG
#define LOG(channel, ...) \
do { \
printf(__VA_ARGS__); \
printf("\n"); \
} while(0)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值