2014-11-05 2 views
0

Как можно получить имя файла ошибки, где возникла ошибка?Номер строки и имя файла PlayFramework

I завернуть Action с APIAction для обработки ошибок в Json:

/** 
    * Handling Exception and wrapping them into Json. 
    * @param f 
    * @return 
    */ 
    def APIAction(f: Request[AnyContent] => Result): Action[AnyContent] = { 
    Action { request => 
     try { f(request) } 
     catch { 
     case msg: Throwable => { 
      Logger.error("Exception in API", msg) 
      InternalServerError(Json.obj("code" -> "500", "message" -> msg.toString, "desc" -> msg.getMessage)) 
     } 
     } 
    } 
    } 

Вот что я хочу, чтобы быть зарегистрированным, но не будет возвращать пользователю enter image description here

и вот что я получаю после Я обернуть все в формате JSON enter image description here

ответ

0

имя файла и номер строки в .getStackTrace()(0).getFileName и .getStackTrace()(0).getLineNumber соответственно, и должны быть авторизованы к вашему файлу журнала, где они принадлежат.

Показ исключения для пользователя - не очень хорошая идея, и вы не должны раскрывать имя файла и строку для пользователя.

+0

Согласен, что пользователю не нужно указывать имя файла. Я хочу зарегистрировать его внутри, чтобы быстрее находить ошибки. –

+0

Logger.error («Исключение из API», msg) сделает именно это. –