- - PR -
C# ソースファイル名やソースコード中の行数を取得することは可能か?
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-08-05 17:37
実行履歴をコンソール出力したいと思います。
いちいち、 Console.WriteLine("ソースファイル Class1.cs の 123 行目を通過しました"); などと書いていては、クラス名を変更したり、行数がずれたりして面倒です。 "Class1.cs"や"123"といった情報(つまりソースコード中の位置)を コンパイル時に取得する方法はあるのでしょうか? 同様に "クラス Class1 の メソッド Get を通過しました" といったコンソール出力もできるのでしょうか? | ||||
|
投稿日時: 2005-08-05 17:52
スタック トレースについて調べてみてください。
ちなみにファイルなどの情報は、デバッグ情報がないと取得できませんよ。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2005-08-05 17:54
| ||||
|
投稿日時: 2005-08-05 17:59
C#でもデバッグビルドであれば行番号やメソッド名を取得することは可能なはずです。ですがデバッグ情報を逐一参照したり、スタック情報をトレースして関数名を求めるためパフォーマンスに大きな悪影響を与えます。C++のように単純には行きません。
Loggingを行うなら自作するよりもLOG4J.NETを活用されるのが良いと思います。 | ||||
|
投稿日時: 2005-08-05 22:19
アサート、というのもなかったかい?
| ||||
|
投稿日時: 2005-08-06 09:46
ありますよ。 System.Diagnostics.Trace.Assert() _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2005-08-07 23:31
ご回答ありがとうございます。
Reflectionをあまり使わなかったので、こういう時に使えると思い出せませんでした。 Traceクラスは知りませんでした。 LOG4で検索するとJava用のツールであるように説明されています。 C#(VS2003)に組み込んで使えるのでしょうか? LOG4.NETをダウンロードおよび説明しているサイトを紹介願えればありがたいです。 | ||||
|
投稿日時: 2005-08-08 13:15
ここが参考になるかと
http://codezine.jp/a/article.aspx?aid=71 |