Spring MVC中日志记录器未打印堆栈跟踪信息

3

我无法在Eclipse控制台中打印日志记录器的堆栈跟踪。

log4j.properties

  log4j.rootLogger=ERROR,console

  #Console Appender 
  log4j.appender.console=org.apache.log4j.ConsoleAppender
  log4j.appender.console.layout=org.apache.log4j.PatternLayout
  log4j.appender.console.layout.ConversionPattern=[%5p] [%t %d{hh:mm:ss}] (%F:%M:%L) %m%n

  #Custom assignments
  log4j.logger.controller=INFO,console
  log4j.logger.service=INFO,console

  #Disable additivity
  log4j.additivity.controller=false
  log4j.additivity.service=false

服务层:

@Override
@Transactional(readOnly = true)
public List<MRPSDepositHistory> getDepositDetails(String searchCondition,
        String searchText, String jtSorting, int startPaginationVal,
        int endPaginationVal) {
    String searchConditionEmpty = ManagementConstants.SEARCHCONDITIONNONE;

    List<MRPSDepositHistory> fileNetStatus = new ArrayList<MRPSDepositHistory>();
    try {
        if (!searchConditionEmpty.equalsIgnoreCase(searchCondition)) {
            if (searchCondition.equalsIgnoreCase(ManagementConstants.DEPOSITNUMBERKEY)) {
                fileNetStatus = mrpsDepositHistoryDao.findByDepositNumber(
                        searchCondition, Short.valueOf(searchText), jtSorting,
                        startPaginationVal, endPaginationVal);
            } else {
                fileNetStatus = mrpsDepositHistoryDao.findBySearchText(
                        searchCondition, searchText, jtSorting,
                        startPaginationVal, endPaginationVal);
            }
        } else {
            fileNetStatus = mrpsDepositHistoryDao.findByRestrictions(
                    searchCondition, searchText, jtSorting);
        }
    }
    catch (NumberFormatException e) {

        logger.error("ERROR:" + e);
    }
    return fileNetStatus;
}

现在在eclipse中打印到控制台的日志:

[ERROR] [http-bio-8080-exec-9 03:46:16] (MrpsDepositHistoryServiceImpl.java:getDepositDetails:57) ERROR:java.lang.NumberFormatException: Value out of range. Value:"353453454" Radix:10

上面的代码中我犯了什么错误。


1
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - M. Deinum
更改为 e.toString() 后,Deinum 仍然无法正常工作。 - bharathi
1
你真的读了我的评论吗?请使用我写的,而不是+toString是你已经有的(用于澄清)。 - M. Deinum
1个回答

5

替换

logger.error("ERROR:"+ e);

by

logger.error("ERROR:", e);

前者实际上是将字符串连接起来,并调用Logger.error(String),该方法只记录了连接后的字符串。但后者调用Logger.error(String, Throwable),其中ThrowableException的超类)被单独处理。


另外,请确保使用logger.error(String, Throwable),而不是其他不支持参数中的throwable的方法。在我切换到具有throwable的特定logger.error之前,上述方法对我无效。 - Reema

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接