Hatena::ブログ(Diary)

Kazzzの日記 このページをアンテナに追加 RSSフィード

2013-04-13

[][]例外が投じられた際スタックトレースログに出力する

NLog.configレイアウト、onexceptionで設定することができる。

NLog.config
   <target name="target" xsi:type="Console" 
         layout="${longdate} ${callsite} ${level} ${message} ${onexception:${exception:format=tostring} | ${stacktrace}}"/>

ログへの出力結果
型 'System.NotSupportedException' の初回例外が mscorlib.dll で発生しました
2013-04-13 14:24:34.8215 xxxxx.vshost xxxxx.Command.AbstractxxxxxCommand`1.ShowBalloonError Error エラーが発生しました> 理由 : ストリームでは読み取りはサポートされていません。 System.NotSupportedException: ストリームでは読み取りはサポートされていません。
   場所 System.IO.BufferedStream.EnsureCanRead()
   場所 System.IO.BufferedStream.Read(Byte[] array, Int32 offset, Int32 count)
   場所 System.Xml.XmlTextReaderImpl.ReadData()
   場所 System.Xml.XmlTextReaderImpl.EatWhitespaces(StringBuilder sb)
   場所 System.Xml.XmlTextReaderImpl.ParseRootLevelWhitespace()
   場所 System.Xml.XmlTextReaderImpl.ParseDocumentContent()
   場所 Mandarine.MVVM.ViewModel.XmlViewModel.parse[T](XmlReader reader) 場所 e:\.Mandarine\MandarineWPF\src\Mandarine.MVVM\ViewModel\XmlViewModel.cs:行 105
   場所 xxxxx.Http.xxxxxWebClient.fetchWebService[T](String service, SettingsViewModel settings, Dictionary`2 args) 場所 e:\.Mandarine\x xxxx\src\xxxxx.Http\xxxxxWebClient.cs:行 85
   場所 xxxxx.Command.ShowAboutCommand.<.ctor>b__0(Object args) 場所 e:\.Mandarine\x xxxx\src\xxxxx.Command\ShowAboutCommand.cs:行 23 | RelayCommand`1.Execute => ShowAboutCommand.<.ctor>b__0 => AbstractxxxxxCommand`1.ShowBalloonError
プログラム '[17508] xxxxx.vshost.exe: マネージ (v4.0.30319)' はコード -1 (0xffffffff) で終了しました。

いちいちコードを書かなくてよいのは便利。