0

JSNlog からのフォーマット例外で JSNlog と Nlog に問題があります。すべてのエラーログを JSON として書き込んでいますが、javascript から例外をスローすると、システムは %message プロパティを JSON としてエンコードし、外側の JSON を無効にします。

このアペンダーの Nlog.config ファイルの構成は次のとおりです。

layout='{"Enviroment":"${aspnet-application:variable=Enviroment}","CreatedOn": "${longdate:universalTime=true}", "WindowsIdentity":"${aspnet-user-identity:jsonEncode=true}","Application":"${AppName}", "Level":"${level}", ${message}}' />

JSNlog の web.config の構成は次のとおりです。

serverSideMessageFormat=""UserAgent": "%userAgent", "SessionId": "%requestId", "URL":"%url", "UserAddress": "%userHostAddress", "Message": "%message""

この構成で実行すると、すべての通常の fatal/error/warn/info/debug/trace 呼び出しで機能しますが、次の JSON での fatalException 呼び出しでは無効な JSON で失敗します。

{"Enviroment":"Dev", "CreatedOn": "2014-09-24 23:58:42.1734", "WindowsIdentity":"XXXr","Application":"LoggingTest", "Level":"Fatal", "UserAgent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36", "SessionId": "befn1iy4mlxqowppwepf104z", "URL":"/LoggingTest/jsnlog.logger", "UserAddress": "10.247.224.202", "Message": "{"stack":"TypeError: undefined is not a function\n    at Log (http://zue-v-86a32393.vpc-am.aws.shell-cloud.com/LoggingTest/:58:16)\n    at HTMLInputElement.onclick (http:/XXXX/LoggingTest/:66:141)","message":"undefined is not a function","name":"TypeError","logData":"JS Fatal Exception"}"}

メッセージの周りの引用符を削除しようとしましたが、fatalException 呼び出しでは正常に機能しますが、引用符が欠落しているため、他のログ呼び出しでは有効な JSON になりません。

この問題を解決する方法や、fatalException 呼び出しから発生する例外をフォーマットする方法を知っている人はいますか?

4

1 に答える 1