NutzCN Logo
问答 slog存入方法值时的问题
发布于 24天前 作者 木易 165 次浏览 复制 上一个帖子 下一个帖子
标签:

请教一下,在SLogService中,当我想存入传入参数的值并加以保存,但是出现了一个问题,在args和re转json时,程序直接跳过下面的方法,并没有把日志数据存入数据库,不知道什么原因

public void log(String t, String type, String tag, String userid, String source, String msg,
                    Map<String, El> els, boolean param, boolean result,
                    boolean async,
                    Object[] args, Object re, Method method, Object obj,
                    Throwable e) {
        System.err.println("--->类名:SLogService.java\t--->方法名:log\t--->行数:110--->打印数据:"+"");
        String _param = "";
        String _result = "";
        if (param && args != null) {
            _param = Json.toJson(args);
        }

        if (result && re != null) {
            _result = Json.toJson(re);
        }
11 回复

很多args和re是不能toJson, 别这样搞

是不是因为那些对象没有序列化的原因?

param 和 result 是false吧

改成true了,只要运行到那个转json就不继续运行下面的代码了

那就是抛异常了

控制台也没有打印任何东西

我打印的方式不要在意,这是之前的代码,插入这里转json就出现那种情况

  System.err.println("--->类名:SLogService.java\t--->方法名:log\t--->行数:110--->打印数据:"+"");
        String _param = "";
        String _result = "";
        if (param && args != null) {

            _param = Json.toJson(args);
        }
        System.err.println("--->类名:SLogService.java\t--->方法名:log\t--->行数:125--->打印数据:"+"");
        if (result && re != null) {
            _result = Json.toJson(re);
        }

        System.err.println("--->类名:SLogService.java\t--->方法名:log\t--->行数:120--->打印数据:"+"");
        log(type, tag ,userid ,  source, msg, async, _param, _result);

日志打印

--->类名:CaiUserController.java	--->方法名:test	--->行数:1338--->打印数据:测试方法
--->类名:SLogAopInterceptor.java	--->方法名:doLog	--->行数:84--->打印数据:{}
--->类名:SLogService.java	--->方法名:log	--->行数:110--->打印数据:
[DEBUG] 22:05:31.519 org.apache.shiro.session.mgt.AbstractValidatingSessionManager.doGetSession(AbstractValidatingSessionManager.java:116) - Attempting to retrieve session with key org.apache.shiro.web.session.mgt.WebSessionKey@60b77022
[DEBUG] 22:05:31.520 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:166) - Get 'sLogService'<class cn.wizzer.app.web.commons.slog.SLogService>
[DEBUG] 22:05:44.814 org.apache.zookeeper.ClientCnxn$SendThread.readResponse(ClientCnxn.java:742) - Got ping response for sessionid: 0x100003814050029 after 0ms
[DEBUG] 22:05:50.853 org.apache.shiro.session.mgt.AbstractValidatingSessionManager.doGetSession(AbstractValidatingSessionManager.java:116) - Attempting to retrieve session with key org.apache.shiro.web.session.mgt.WebSessionKey@60b77022
--->类名:SLogAopInterceptor.java	--->方法名:doLog	--->行数:84--->打印数据:{}
--->类名:SLogService.java	--->方法名:log	--->行数:110--->打印数据:
[DEBUG] 22:05:58.148 org.apache.zookeeper.ClientCnxn$SendThread.readResponse(ClientCnxn.java:742) - Got ping response for sessionid: 0x100003814050029 after 0ms
[DEBUG] 22:06:05.364 cn.wizzer.app.web.commons.processor.LogTimeProcessor.process(LogTimeProcessor.java:26) - [GET ]URI=/platform/cai/user/t1 34970ms
[WARN ] 22:06:05.365 org.nutz.mvc.impl.processor.FailProcessor.process(FailProcessor.java:28) - Error@/platform/cai/user/t1 :
java.lang.OutOfMemoryError: Java heap space
	at java.util.Arrays.copyOf(Arrays.java:3332)
	at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:124)
	at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:649)
	at java.lang.StringBuilder.append(StringBuilder.java:202)
	at org.nutz.lang.stream.StringWriter.write(StringWriter.java:23)
	at java.io.Writer.write(Writer.java:192)
	at java.io.Writer.write(Writer.java:157)
	at org.nutz.json.impl.JsonRenderImpl.writeRaw(JsonRenderImpl.java:299)
	at org.nutz.json.handler.JsonNumberHandler.toJson(JsonNumberHandler.java:33)
	at org.nutz.json.impl.JsonRenderImpl.render(JsonRenderImpl.java:86)
	at org.nutz.json.impl.JsonRenderImpl.appendPair(JsonRenderImpl.java:129)
	at org.nutz.json.impl.JsonRenderImpl.writeItem(JsonRenderImpl.java:183)
	at org.nutz.json.handler.JsonPojoHandler.toJson(JsonPojoHandler.java:125)
	at org.nutz.json.impl.JsonRenderImpl.render(JsonRenderImpl.java:82)
	at org.nutz.json.impl.JsonRenderImpl.appendPair(JsonRenderImpl.java:129)
	at org.nutz.json.impl.JsonRenderImpl.writeItem(JsonRenderImpl.java:183)
	at org.nutz.json.handler.JsonPojoHandler.toJson(JsonPojoHandler.java:125)
	at org.nutz.json.impl.JsonRenderImpl.render(JsonRenderImpl.java:82)
	at org.nutz.json.impl.JsonRenderImpl.appendPair(JsonRenderImpl.java:129)
	at org.nutz.json.impl.JsonRenderImpl.writeItem(JsonRenderImpl.java:183)
	at org.nutz.json.handler.JsonPojoHandler.toJson(JsonPojoHandler.java:125)
	at org.nutz.json.impl.JsonRenderImpl.render(JsonRenderImpl.java:82)
	at org.nutz.json.impl.JsonRenderImpl.appendPair(JsonRenderImpl.java:129)
	at org.nutz.json.impl.JsonRenderImpl.writeItem(JsonRenderImpl.java:183)
	at org.nutz.json.handler.JsonPojoHandler.toJson(JsonPojoHandler.java:125)
	at org.nutz.json.impl.JsonRenderImpl.render(JsonRenderImpl.java:82)
	at org.nutz.json.handler.JsonArrayHandler.toJson(JsonArrayHandler.java:42)
	at org.nutz.json.impl.JsonRenderImpl.render(JsonRenderImpl.java:82)
	at org.nutz.json.impl.JsonRenderImpl.appendPair(JsonRenderImpl.java:129)
	at org.nutz.json.impl.JsonRenderImpl.writeItem(JsonRenderImpl.java:183)
	at org.nutz.json.handler.JsonPojoHandler.toJson(JsonPojoHandler.java:125)
	at org.nutz.json.impl.JsonRenderImpl.render(JsonRenderImpl.java:82)

@wendal 请问,还有办法转换吗

很多参数不适合转json字符串的啊

你这是要全部参数就入库记录??

把args数组的元素逐个判断一下, 如果是String/基本数据类型/Pojo类,就留下, 其他就不转

添加回复
请先登陆
回到顶部