OSXのdashboardでコンソールにデバッグ出力を出す方法
Technical Note TN2139: Debugging Dashboard Widgets をよく読むと
When running in Dashboard, alert statements are simply printed to the Console, avoiding any of these issues.
と書かれているではないですか。はじめalertの出力がコンソールに出るっていうのはsafariのdebugメニューの JavaScript Console かと思って、出てこないなーと困っていたら、コンソールというのは標準出力のことでした。
ふつうの状態ではDockの標準出力はどこかに捨てられてしまうので、OSX起動時から動いているDockをkillして、新たにターミナルからDockを起動する必要があります。Dockの親プロセスのWIndowServerが生死を監視しているらしく、Dockが死ぬとすぐにWindowServerがDockを起動しちゃうのでそれより早くDockを起動しなければいけません。
kuma@fav:~% killall Dock && /System/Library/CoreServices/Dock.app/Contents/MacOS/Dock
でkillと起動を行うとうまくターミナルからDockを起動して標準出力を受け取ることができました。
この状態でdashboardの中で alert("log me.") を実行すると、ターミナルに
2007-03-23 20:50:36.092 DashboardClient[2214] jp.gmo.labs.dashboard.pibrowse: log me.
と出力されてすべて解決です!
はじめ DashboardWidgetのデバッグ方法 を読んで、これはIE上での開発と同じくらい辛いなーと思ったのですがこれで少し楽ができます。
あともうひとつデバッグするときに便利なことを発見。
widgetがなんらかの理由で Command+R も受け付けなくなったときには
killall Dock
でDockを終了させると、”ウィジェットを管理”で消して再度入れ直したりしなくても問題が解決できます。

1 Comment
Jump to comment form | comments rss [?] | trackback uri [?]