我使用log4j将日志输出到MongoDB数据库,我想使用MDC将一个map输出到Json字符串中。
日志中map的样式是{CODE1=00022, CODE=0002}
这不符合json规范,会报错
我就重写的map的toString()方法,输出{"CODE1"="00022", "CODE"="0002"}
但是写入数据库的时候,MongoDB会将字符串中的转义字符也显示出来,{\"CODE1\"=\"00022\", \"CODE\"=\"0002\"}如:。还是会有JSONParseException
有什么解决办法吗?
我的目的就是将map以{"CODE1"="00022", "CODE"="0002"}样式放到MongoDB一条文档的子文档中。如{
"_id" : { "$oid" : "4e126e6a8afbc8dd60f92768"} ,
"LOGTIME" : "2011-07-05 09:52:42" ,
"LOGLEVEL" : "INFO" ,
"LOGTYPE" : {"CODE1"="00022", "CODE"="0002"} , ←←此处
"CLASSNAME" : "test.LogTest" ,
"METHODNAME" : "main" ,
"PATH" : "test.LogTest.main(LogTest.java:49)" ,
"MESSAGE" : "java.lang.IndexOutOfBoundsException: Index: 4, Size: 0\r\n\tat java.util.ArrayList.RangeCheck(ArrayList.java:547)\r\n\tat java.util.ArrayList.get(ArrayList.java:322)\r\n\tat test.LogTest.main(LogTest.java:44)\r\n"
}
日志中map的样式是{CODE1=00022, CODE=0002}
这不符合json规范,会报错
我就重写的map的toString()方法,输出{"CODE1"="00022", "CODE"="0002"}
但是写入数据库的时候,MongoDB会将字符串中的转义字符也显示出来,{\"CODE1\"=\"00022\", \"CODE\"=\"0002\"}如:。还是会有JSONParseException
有什么解决办法吗?
我的目的就是将map以{"CODE1"="00022", "CODE"="0002"}样式放到MongoDB一条文档的子文档中。如{
"_id" : { "$oid" : "4e126e6a8afbc8dd60f92768"} ,
"LOGTIME" : "2011-07-05 09:52:42" ,
"LOGLEVEL" : "INFO" ,
"LOGTYPE" : {"CODE1"="00022", "CODE"="0002"} , ←←此处
"CLASSNAME" : "test.LogTest" ,
"METHODNAME" : "main" ,
"PATH" : "test.LogTest.main(LogTest.java:49)" ,
"MESSAGE" : "java.lang.IndexOutOfBoundsException: Index: 4, Size: 0\r\n\tat java.util.ArrayList.RangeCheck(ArrayList.java:547)\r\n\tat java.util.ArrayList.get(ArrayList.java:322)\r\n\tat test.LogTest.main(LogTest.java:44)\r\n"
}
解决方案 »
- 一个合格的软件专业的毕业生的代码量是多少?
- struts2+spring2+hibernate3+oracle配置问题
- ireport下载
- 求助!!!!!!!!!!怎么设置组件的别名啊
- 怎样才能获取这个ServletContext
- 一个关于commons-beanutils的问题,请大家帮我解决一下好吗??谢谢了!!*^_^*
- 微软sqlserver2000 jdbc驱动中 返回事游标类型怎么表示:
- Struts中ActionForm问题
- 请问如何在struts的action类里使用jspsmartupload?
- ssm 启动访问页面报错
- Intellij10.5.1整合tomcat步骤
- ireport 生成html页面图片显示
这样只要将map中的toString方法改一下就实现了。
map 的toString 得到如下格式{'CODE1':'00022', 'CODE':'0002'}
写入数据库后就是{ "_id" : { "$oid" : "4e1296b08afb62efeb02876c"} , "LOGTIME" : "2011-07-05 12:44:32" , "LOGLEVEL" : "INFO" ,
"LOGTYPE" : { "1" : "11" , "CODE1" : "00022" , "CODE" : "0002" , "xx" : "ssdfjd"} , ←←这里
"CLASSNAME" : "test.LogTest" , "METHODNAME" : "main" , "PATH" : "test.LogTest.main(LogTest.java:49)" , "MESSAGE" : "java.lang.IndexOutOfBoundsException: Index: 4, Size: 0\r\n\tat java.util.ArrayList.RangeCheck(ArrayList.java:547)\r\n\tat java.util.ArrayList.get(ArrayList.java:322)\r\n\tat test.LogTest.main(LogTest.java:44)\r\n"}
虽能对日志记录提点建议分就给谁了,我菜鸟