[英]Console.log messages not showing up in Chrome's javascript console?
[英]Angular's $log.debug() not showing on Chrome's console
最近,我的Chrome浏览器停止在控制台上显示$log.debug()
消息。 我一直在使用这种方式在我的所有控制器上使用angular而不是console.log()
进行日志记录,因为当我将脚本上传到生产服务器时很容易禁用日志记录。
我已经检查了我的$logProvider
配置,并且debugEnabled()
设置为true
。
出于某种原因,在chrome上显示$log.debug()
消息的唯一方法是在控制台过滤器上启用verbose
消息。 直到最近,这是没有必要的。 启用详细信息并不好,因为控制台会发出很多其他我不关心的消息。
我目前在Windows 7计算机上使用Chrome v60.0.3112.101 64位。 它与浏览器的版本有关吗? 我可以做些什么来让它在没有详细模式的情况下再次显示消息吗?
Ps。:Firefox继续一如既往地展示一切。
console.debug
日志级别在Chrome / Chromium版本之间不一致。 Chrome 58中的控制台UI已更改。 目前console.debug
需要详细级别。
如果此日志级别不需要其他控制台条目,则控制台设置可以更改为仅用户消息 :
如果应在特定页面中更改此行为,则可以修补console
:
console.debug = console.log;
考虑到AngularJS $log
服务是对console
的抽象,并且$log.debug
依赖于debugEnabled
状态以区别于$log.log
,这可以在AngularJS应用程序中以不那么突兀的方式修复:
app
.config(['$provide', '$logProvider', ($provide, $logProvider) => {
// expose a provider to reach debugEnabled in $log
$provide.value('$logProvider', $logProvider);
})
.decorator('$log', ['$logProvider', '$delegate', ($logProvider, $delegate) => {
// override $log.debug
$delegate.debug = function () {
if (!$logProvider.debugEnabled())
return;
$delegate.log.apply($delegate, arguments);
});
return $delegate;
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.