2016-09-28 9 views
0

Eclipseコンソールでロガーのスタックトレースを印刷できません。ロガーがスタックトレースをspring mvcに出力しない

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; 
} 

ログインが日食になりましコンソールに印刷されたばかり:私は上記のコードで間違って行った

[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

間違っているのは '+' ...基本的に 'logger.error(" Error: "+ e.toString())"に書き換えられます。代わりに、スタックトレースを出力する '、' ... 'logger.error(" Error: "、e)'を使用してください。 –

+0

e.toString()に変更してもDeinumはまだ動作していません – bharathi

+1

実際にコメントをお持ちですか? '+'の代わりに ''を使用します。これは私が書いたものです。 'toString'はあなたがすでに持っていたものです(そして明確化のためにそこにありました。 –

答えて

3

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

を交換し

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

によって前者は、実際に文字列を連結し、単にその連結した文字列をログに記録Logger.error(String)を呼び出します。しかし、後でThrowable(スーパークラスException)が別々に管理されているLogger.error(String, Throwable)が呼び出されます。

関連する問題