(Xamarin.Forms)ログにメソッド名を出力する
ログにメソッド名を出力したい!
そう思うことはちょいちょいあります。
iOSネイティブだと、
- Objective-Cなら
__PRETTY_FUNCTION__
- Swiftなら
#function
で、手軽にできるんですが。
Xamarin.Formsではどうやるんでしょうか?
ということで、調べて見ました。
MethodBase.GetCurrentMethod
パッと調べてみた感じ、
MethodBase.GetCurrentMethod
を使えばよさそう!
と思いましたが、
Xamarin.Forms(PCL)ではちょっと無理っぽい…。
MethodBase does not contain GetCurrentMethod in Portable Class Library (VS 2015)
Caller Info属性
もうちょっと調べてみたら、
Caller Info属性
というのがあるらしい(C# 5.0〜)
C# 5.0 の新機能 - C# によるプログラミング入門 | ++C++; // 未確認飛行 C
こいつならXamarin.Formsでもいけそう! ということで、 Caller Infoを使ったサンプル実装してみました!
とは言っても、
ほとんど上記のページの通りの実装に、
自分が欲しい形を追加しただけなんですが…。
Traceクラスを実装してみた
ログ出力周りについては、
実戦の開発で使うならいろいろ考慮せねばなりませんが…。
ここではベーシックにやり方を押さえるサンプルとして。