【问题标题】:Not getting proper logs in Samsung Tizen TV emulator在三星 Tizen 电视模拟器中没有获得正确的日志
【发布时间】:2016-06-15 06:46:24
【问题描述】:

我正在使用 IDE 2.4.0_Rev5 在 Tizen TV 模拟器上开发和运行我的应用程序。 我面临的问题是许多已放入 javascript 文件(使用 console.log('xyz') )的日志在运行应用程序时不会出现在控制台中,即使我启动调试器,但是确实会出现一些日志。

例如,我从这里获取了 AV Player 的示例应用程序: https://github.com/Samsung/TizenTVApps/tree/master/TVDemoAvPlayer

当我运行应用程序并按下播放按钮时,我只得到以下日志:

js/main.js (218) :Buffering Complete, Can play now!
js/main.js (66) :PLAYPAUSE
js/main.js (149) :Player.play(undefined)

但是,如果您查看文件,则有很多日志没有出现,例如:

console.log('Main.onLoad()');    
console.log('Player.init('+id+')');
console.log('Player.prepare('+url+')');

如果你看代码,可以肯定控件会到达这些点(我也通过一些修改来验证——更改url等并生效),因此这些日志根本没有意义没有出现,表明我错过了一些设置/配置,或者 SDK/模拟器存在一些重大问题。

有没有人在使用 Tizen TV 模拟器时遇到过类似的问题?有什么办法解决吗?

【问题讨论】:

  • 您是否在调试模式下运行应用程序?怎么样 window.alert('some text'); ?同样的情况?
  • 当我放一个 window.alert('text') 时,我会得到日志。我的理由可能正如下面 Davesaus 的回答中所解释的那样。通过放置一个 window.alert,它会等到我按 OK 继续启动应用程序,这可能会给控制台窗口准备好时间。

标签: tizen tizen samsung-smart-tv tizen-emulator tizen-sdk


【解决方案1】:

你没有做错任何事。一开始我也在同样的问题上苦苦挣扎。不幸的是,三星设置调试环境的方式,在控制台窗口准备好之前就输出了一些日志。我们为此找到了一些解决方案。如果您在模拟器或实际电视上进行调试,它们都可以工作。

这个最简单的解决方案是在您的应用启动后在控制台中输入location.reload()。将在不重新启动调试器的情况下重新启动应用程序。这样,您将能够查看所有日志。请注意,我们在重新加载后看到了一些奇怪的行为,所以不要依赖它来进行正确的调试。但是从头开始查看日志仍然是一种有效的“快速而肮脏”的方法。

下一个解决方案是编写一些代码来覆盖console.log() 以缓存消息。然后您可以从控制台调用一个函数来播放消息。像这样的东西将保留最后 200 条日志行,并允许您通过调用 dumpLog() 来输出它们。 (下面的示例代码依赖于lodash。)

var proxiedLog = console.log;
var logCache = [];

console.log = function() {
  logCache.push(_.join(arguments, ", "));
  _.drop(logCache, logCache.length - 200);
  return proxiedLog.apply(this, arguments);
}

function dumpLog() {
   _.forEach(logCache, function(entry) { console.debug(JSON.stringify(entry)); });
}

但最好的方法,我鼓励您在发布到生产环境之前进行设置的方法,是将该信息发送到为您缓存日志的后端服务。您可以使用与上述类似的设置,您只需要将输出也发送到您的服务器。请务必包含一些唯一标识符,以便您可以区分来自不同设备的日志。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-08
    • 1970-01-01
    • 1970-01-01
    • 2020-06-10
    相关资源
    最近更新 更多