gpt4 book ai didi

javascript - JSNlog 异常格式问题

转载 作者:行者123 更新时间:2023-12-03 11:46:23 26 4
gpt4 key购买 nike

我在使用 JSNlog 和 Nlog 时遇到来自 JSNlog 的格式化异常的问题。我将所有错误日志写为 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 调用的异常?

最佳答案

我是 JSNLog 的作者。

该问题是由 JSNLog 中的缺陷引起的。当您在客户端记录一个对象时,它会作为 JSON 字符串发送,例如 { "x": 44 }。请注意,这包含引号。但是,当您记录一个简单字符串时,它会作为一个简单字符串发送,没有引号,并且字符串内的任何引号都不会转义 - 这意味着它与 JSON 对象不兼容。

这在日志条目是简单字符串而不是 JSON 对象的大多数情况下效果很好。但当您想要记录有效的 JSON 对象时,它就不能很好地工作。

我还没有尝试过,但我假设如果您使用原始设置并在客户端上记录包含引号的字符串,您将得到与使用 fatalException 时相同的错误。

我决定通过引入新属性 %jsonmessage 来解决此问题,该属性可以正确引用和转义字符串。然后,您可以在用于使 fatalException 工作的配置中使用该属性。

我将通过对此答案的评论随时通知您。

关于javascript - JSNlog 异常格式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26028447/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com