我有問題與JSNlog和Nlog格式化異常來自JSNlog。我將所有錯誤日誌記錄爲JSON,但是當我從JavaScript中拋出異常時,系統將%message屬性編碼爲JSON,並導致外部JSON無效。問題與JSNlog異常格式化
我爲這個附加目的地的Nlog.config文件配置爲:
layout='{"Enviroment":"${aspnet-application:variable=Enviroment}","CreatedOn": "${longdate:universalTime=true}", "WindowsIdentity":"${aspnet-user-identity:jsonEncode=true}","Application":"${AppName}", "Level":"${level}", ${message}}' />
我在web.config中的JSNlog配置:
serverSideMessageFormat=""UserAgent": "%userAgent", "SessionId": "%requestId", "URL":"%url", "UserAddress": "%userHostAddress", "Message": "%message""
當我與此配置中運行它的工作原理對於所有正常的致命/錯誤/警告/信息/調試/跟蹤調用,但是對於任何帶有以下JSON的fatalException調用,它失敗並失敗:
{"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調用出來的異常?
我已經將%jsonmessage添加到JSNLog併發布了新版本(2.7.5)。請參閱 http://jsnlog.com/Documentation/WebConfig/JSNLog 請將%消息替換爲%jsonmessage。一定不要用引號包圍它(如果消息是一個字符串,JSNLog會爲你做這件事)。 如果你能讓我知道它現在是否適合你,那會很棒。 – user1147862 2014-09-27 08:19:11