NRSDKのNRDebuggerクラスの中身を見てみた
どうも、かげさんです(^^)/
あなたがこの記事を読んでいるのは何回目でしょうか?
初めての方、いらっしゃい!
複数回目の方、再訪問ありがとです(・∀・)
あいかわらず Nreal Light のプログラムで録画機能を使うと 0 バイトファイルができるだけで止まっているかげさんです…(´・ω・`)
何か進展するための情報があれば良いのですが、調べ方が悪いのか、よく分からず…
とりあえずログなりメッセージを表示する方法がないかなと思って、NRSDK の NRDebuggerクラスを調べてみた。
NRDebugger のソース
録画に使うソースの中にこんな記述があった。
NRDebugger.Info("Created VideoCapture Instance!");
NRDebugger.Error("Failed to create VideoCapture Instance!");
NRDebugger.Warning("Can not start video capture!");
どうやら NRDebuggerクラス というのを使うとコンソールログを出すっぽい。
NRDebugger のソースは、Assets\Scripts\NRDebugger.cs である。
ざっくり読んでみたところ、LogLevel 列挙型と、クラスをインスタンス化しなくても使えるスタティックメソッドがあるのが分かった。
LogLevel 列挙型
LogLevel 列挙型の値 | LogLevel 列挙型の意味 |
---|---|
All | すべて |
Debug | デバッグ情報 |
Info | 情報 |
Warning | 警告 |
Error | エラー |
Fatal | 致命的なエラー |
Off | オフ |
ログレベルは、上記のLogLevel 列挙型の場合、下の方がレベルが高い。
NRDebugger.LogLevel = LogLevel.Info;
とすることで、情報以上のレベルのログだけが出力される。
通常、デバッグで使うログは数が多く、情報収集には便利なんだが、数が多い分、重要な情報が埋もれてしまう。
上記のように情報以上とすることで、デバッグ情報レベルのログは出力されなくなり、重要な情報の見落とし率がグッと下がる。
ログレベルの考え方は、割と一般的なもので業務アプリケーションの開発でも使われる。
余談だが、かげさんが作っていたWindowsゲーム「初音ミク冒険記」のデバッグでもログレベルを使っており、初音ミク冒険記では、かなり細かいログレベル管理をしていた。
<参考:初音ミク冒険記のデバッグ設定画面でのログレベル設定>
ログ出力メソッド
メソッド名 | メソッドの内容 |
---|---|
Debug | デバッグ情報を出力 |
Info | 情報 |
Warning | 警告 |
Error | エラー |
Fatal | 致命的なエラー |
どのメソッドも引数としてオブジェクト、文字列、書式付き文字列とそのパラメータを受け取れるようになっている。
単純な文字列を出力する記述は、こんな感じだ。
NRDebugger.Warning("Can not start video capture!");
オブジェクトだとこんな感じ。
NRDebugger.Warning(Cube);
書式付き文字列だとこんな感じ。
NRDebugger.Warning("{0}{1:0}", "数値パラメータ=", intParameter);
まとめ
NRDebugger クラスを使うと、ログレベルで管理されたコンソールログを出力するのが分かった。
ここまではOKだ
コメント
このブログの新着コメントをRSSリーダに登録する為のxml