我希望记录对web服务的请求和响应。我将slf4j与底层log4j2实现一起使用。我的日志记录语句如下所示。
记录器。信息(“{}”,新的CustomObject(请求、响应、参数1、参数2));
我已经在所有必要的对象和CustomObject类中实现了toString方法,以记录该对象的所有属性。
我看到CustomObject的toString方法在将日志消息传递给Asynch记录器之前被调用。
是否有任何自定义对象的序列化/toString方法调用被推迟到实际日志记录发生时?
这是出于设计:如果记录了一个对象,那么它可能在后台线程可以记录它之前发生了变化,并且最终会得到一个与预期不同的日志条目。
在您的示例中,您的应用程序没有对CustomObject的引用,因此它无法更改,但Log4j2无法知道这一点,因此它采用保守的方法。
有一个系统属性可以关闭它,但是使用它意味着所有记录的对象必须是有效的不可变的,否则你会发现你的日志在欺骗你。。。(我也不能100%确定系统属性是否仍然有效,因为Log4j2在版本2.6中变得没有垃圾。)
更新(2017-12-09):系统属性在2.6版本后仍然有效。(但我不建议在后台线程中呈现消息,除非您非常确信应用程序不会修改记录的对象。)
我使用的是log4j版本2.10.0 我正在尝试使用混合的异步和同步记录器设置无gc日志记录(因此它是通过xml配置配置的,带有一些
null 最初,我试图通过更改中的文件来改变日志记录行为。不幸的是,这似乎没有什么作用,所以我现在的假设是,我正在创建的正在推翻文件中设置的规范。具体地说,的基于其他研究进行了更改。它正在尝试替换所有换行符。 日志文档 SLF4J文档 SLF4J手册 合并Logback和SLF4J 日志和SLF4J-structuredarguments 使用日志记录的JSON日志 将日志折叠-多行合并为一行 A
问题内容: 将字符串表示形式转换为对象,但我要相反。对象要转换为JSON字符串,我有一个链接http://www.devcurry.com/2010/03/convert- javascript-object-to-json.html, 但是它需要json2.js jQuery是否具有本机功能方法来做到这一点? 问题答案: jQuery只会在调用本机浏览器方法之前进行一些正则表达式检查。如果不可用
问题内容: 如何使用JavaScript(或jQuery)将描述对象的字符串转换为JSON字符串? 例如:转换这个( 不是 有效的JSON字符串): 到这个: 如果可能,我希望避免使用。 问题答案: 如果字符串是来自可靠来源 ,你可以使用然后的结果。像这样: 请注意,当您使用对象文字时,必须将其括在圆括号中,否则将花括号解析为块而不是对象。 我也同意以下问题的评论,那就是最好以有效的JSON开始编
问题内容: 您如何使JS认为字符串是JSON? 我有一个仅在将JSON对象传递给它的情况下才起作用的函数。如果我以与JSON相同的格式将字符串传递给它,则它将不起作用。因此,我想让该函数认为传递给它的字符串是JSON。该字符串确实采用JSON格式。 我还尝试了以下方法。我通过Ajax输入了字符串,参数“ handle as”为“ JSON”,然后将结果传递给函数。 所以我推断出问题不在弦上。如何将
问题内容: 我已经编写了一个android程序来将值从Web服务加载到表行。但是值变为null,因此我需要将其转换为字符串。有人可以告诉我这样做的方法吗? 现在从Web服务获取空值,因此我需要将其转换为string 。 LogCat: 问题答案: 用这个,