最近在维护一个项目(维护也不容易啊,谢谢大家帮忙):简述下: 前台操作员提交大量数据过来,后台就接受数据然后组织形成xml格式输入到日志(这个是必须输入到日志中的,不管xml内容对错),然后再经过复杂的业务处理,再插入数据库。
目前是项目中是用logger.info("接到原始XML信息:"+ xmlContent);
不过项目组中有人提出:
大量的输入很影响系统效率,毕竟是输出到硬盘,尤其这么大的xmlContent。
现在用的是info,稳定后建议改为debug输出。
(不知道此人提出的是不是正确的,必须要复合)
问题来也: 如果用logger.debug("接到原始XML信息:"+ xmlContent);
那么是不是只有在出现异常的情况下才输入到日志呢? 不出现异常就不会输入到日志? 谢谢大家,祝工作顺利!
目前是项目中是用logger.info("接到原始XML信息:"+ xmlContent);
不过项目组中有人提出:
大量的输入很影响系统效率,毕竟是输出到硬盘,尤其这么大的xmlContent。
现在用的是info,稳定后建议改为debug输出。
(不知道此人提出的是不是正确的,必须要复合)
问题来也: 如果用logger.debug("接到原始XML信息:"+ xmlContent);
那么是不是只有在出现异常的情况下才输入到日志呢? 不出现异常就不会输入到日志? 谢谢大家,祝工作顺利!
解决方案 »
- 用RandomAccessFile为什么创建的文件为乱码?
- 今后的发展方向
- wsdl文件解析问题
- 在子容器中如何访问父容器中通过PropertyPlaceholderConfigurer载入的属性值
- 急~~~在线等,关于Tapestry初始化类的问题!!!!!
- 早上刚面试的题目 有一道不知道怎么下手 求解
- 请问怎样用JAVA APPLET编写一个视频播放程序以及使它支持FLASH动画和其他流媒体呢???如果用APPLICATION,那怎样编写呢????
- jbuilder+jboss环境下测试EJB出错,请教高手
- 请问抽象类和接口有什么区别?使用它们的原则是什么?
- James+MSSql2k中的JDBC的问题,多谢 ...
- ~^
- 解析一下这段代码是什么意思
DEBUG 级别比 INFO 低,为什么不稳定用 INFO,稳定用 DEBUG 呢?
另:logger.debug("接到原始XML信息:"+ xmlContent);这样的写法是有问题,虽然在 INFO 级别时日志并不会被日志管理器输出到任何地方,但是,这里涉及到一个字符串的拼接。Java 中的方法调用参数,是先执行方法参数中的表达式,再进行方法调用的。因此,在 INFO 级别时,这里也涉及一个字符串的连接操作,最不幸的是,这种连接在连完后马上就被扔掉了。一般会把代码写成这样的:if(logger.isDebugEnabled()) {
logger.debug("接到原始XML信息:"+ xmlContent);
}仅在 DEBUG 或更低级别时进行日志输出。当然了,这样的写法会导致日志代码量增大,我一般将 slf4j 的日志重新包装,全部使用变参形式,只要这样就可以了:logger.debug("接到原始XML信息:{}", xmlContent);这样的话就不涉及字符串拼接了。
异常可以记录在warning和error,严重的可以放fatal,既然要用人家的log系统就最好遵守log设计者的意图。
比如,系统有个属性可以更改下,是输出debug的日志还是输出info的日志,或者只输出error的日志。
info()
error()
这是记录时候的级别。约定你写日志的级别是debug、info还是error。但是具体输出到文件想要哪些信息是在配置文件中配的,你可以进行选择输出。这就要看log4j的文档了。