Fel*_*eão 7 javascript google-chrome angularjs
最近,我的Chrome浏览器停止$log.debug()在控制台上显示消息.我一直在使用这种方式使用angular而不是console.log()我的所有控制器,因为当我将脚本上传到生产服务器时很容易禁用日志记录.
我已经检查了我的$logProvider配置并debugEnabled()设置为true.
出于某种原因,$log.debug()在chrome 上显示消息的唯一方法是verbose在控制台过滤器上启用消息.直到最近,这是没有必要的.启用详细信息并不好,因为控制台会发出很多其他我不关心的消息.
我目前在Windows 7计算机上使用Chrome v60.0.3112.101 64位.它与浏览器的版本有关吗?我可以做些什么来让它在没有详细模式的情况下再次显示消息吗?
Ps.:Firefox继续一如既往地展示一切.
Est*_*ask 10
console.debugChrome/Chromium版本之间的日志级别不一致.Chrome 58中的控制台UI已更改.目前console.debug需要详细级别.
如果此日志级别不需要其他控制台条目,则控制台设置可以更改为仅用户消息:
如果应该在特定页面内更改此行为,console可以修补:
console.debug = console.log;
Run Code Online (Sandbox Code Playgroud)
考虑到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;
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3456 次 |
| 最近记录: |