System.Diagnostics.Trace.TraceError(String message)よりアプリケーション トレースログを出力しているかと思いますが、こちらについては引数の文字列がそのままログとして出力されます。
ですので、記述いただいたソース中のe.StackTraceで出力される文字列がそのままトレースされているはずです。
実際の実行環境で上記のソースのe.StackTrace部分をコンソール等で出力した場合、Azure Strageへトレースされたログと差分はございますでしょうか。
また、少し調査してみましたところ、Azure SDK for .NETのv1.5、v2.8で.NET Framework のサポートバージョンが違うという記事を見つけました。
v1.5:3.5 SP1、4.0
v2.8:4.0、4.5、4.5.1、4.5.2系、4.6系
https://msdn.microsoft.com/ja-jp/library/dn479282.aspx
Azure SDK for .NETのバージョンアップの際に、.NET Frameworkのバージョンを上げたなどはございませんでしょうか。
もしそうでしたら、こちらの変更による影響も考えられるかもしれません。
(記述頂いたコードにて.NET Frameworkの各バージョンのStackTraceの内容を見ましたが、私の環境ではStackFrameごとに行数が表示されておりましたが...)
アプリの規模感が不明ですので、実現可能かどうかはわかりませんが、記述いただいたソースを以下のような形で変更頂けると各StackFrame毎の行数の出力等は行えるようになるかと思いますので、どうしても必要だということでしたらお試し下さい。
C#
1//TestClass.cs
2class TestClass
3{
4 static void Main(string[] args)
5 {
6 try{
7 // SubClassのAddDataを実行する
8 SubClass proc = new SubClass();
9 proc.addData();
10
11 } catch(Exception e){
12 //エラーのStackTraceを出力
13 Trace.TraceError(ShowStackTrace(e));
14 }
15 }
16
17 //StackTraceより各StackFrameの詳細を取得
18 static String ShowStackTrace(Exception e)
19 {
20 StringBuilder traceLog = new StringBuilder();
21 StackTrace trace = new StackTrace(e, true);
22 foreach(var frame in trace.GetFrames)
23 {
24 traceLog.AppendLine("File Name : " + frame.GetFileName());
25 traceLog.AppendLine("Class Name : " + frame.GetMethod().ReflectedType.Name);
26 traceLog.AppendLine("Method Name" + frame.GetMethod());
27 traceLog.AppendLine("Line Number : " + frame.GetFileLineNumber());
28 traceLog.AppendLine("=======================================================");
29 }
30
31 return traceLog.ToString();
32 }
33}
34
35//SubClass.cs
36class SubClass
37{
38 public void addData()
39 {
40 //ここがSubClass.csの20行目とし、例外が発生したとする
41 }
42}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/24 16:06
2016/06/26 13:32