NLog Target Extension(その4)
次回ではNLogを使って実際にログを出力してみよう。
using (IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication()) { using (Stream stream = new IsolatedStorageFileStream("Mandarine.log" , FileMode.Append, FileAccess.Write, store)) { var writer = new StreamWriter(stream); writer.WriteLine(this.Layout.Render(logEvent)); writer.Close(); } }
IsolatedStorageFileにより出力された"はず"のログだが、Windows Phone 7は内部のファイルシステムに直接アクセスするAPIがサポートされていないため、これをエミュレータや端末から簡単に見る術は無い。しかし、それではデバッグができないので専用のツールが用意されている。
ISETool.exe
How to: Use the Isolated Storage Explorer Tool - MSDN Lirary
ISEToolはIsolatedStorageFile内のデータのスナップショットを取得したり復旧したりするツール。スナップショットという言い方が分かり難いが、Androidで言うところの"adb pull/push <ファイル>"に相当するものであり、今回の場合、Isolated Storageの内容をダウンロードして内容を確認する。
ログの採取
NLogのイディオムを使用してログを出力する
NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
logger.Info("NLogでログを出力してみよう");
ISEToolによりIsolated Storageのスナップショットを取得
エミュレータで前述のコードを実行後、isetoolによりIsolatedStorageの内容を取得する。
>isetool ts xde:\temp
このままだとどんどんとサイズが膨らむので、ファイルのローリングなども考えなくてはなるまい。