У меня возникла проблема с JSNlog и Nlog с форматированием Исключения из JSNlog. Я записываю все свои журналы ошибок как JSON, но когда я генерирую исключение из javascript, система кодирует свойство% message как JSON, а также приводит к тому, что внешний JSON недействителен.Проблема с форматированием исключений JSNlog
Моя конфигурация для файла Nlog.config для этого Appender является:
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 при любых фатальных вызовах исключения со следующим 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?
Теперь я добавил% jsonmessage в JSNLog и выпустил новую версию (2.7.5). См. http://jsnlog.com/Documentation/WebConfig/JSNLog Пожалуйста, замените% сообщение% jsonmessage. Обязательно не окружать его кавычками (JSNLog сделает это для вас, если это сообщение является строкой). Если бы вы могли сообщить мне, будет ли оно теперь работать для вас, это было бы здорово. – user1147862