2015-07-23 4 views
3

Я использую Play Framework, но, как и многие другие вещи, я не сталкивался с определением шаблонов ведения журнала, которые добавляют метку времени в журнал. Для служб, которые обрабатывают много запросов/сообщений Akka в минуту, это делает журнал практически бесполезным. Например, мы используем Playlogger немного так:Play Framework: время регистрации

Logger.error("could not fulfil request", someException) 

Как документация идет. В документации указывается, что можно определить свои собственные заголовки ведения журнала, например;

val exceptionLogger = Logger("exception") 
// and then 
exceptionLogger.error("while handling some/request", someException) 

В регистрационных записях, полученных в результате вышеизложенного, не содержится отметки времени любого рода;

[error] exception - while handling some/request ... 

Нет никакого упоминания о времени. Теперь обходной путь (а не самый красивый) - это что-то вроде этого;

def exceptionLogger = { 
    val dt = new DateTime 
    Logger(s"$dt exception") 
} 

Какая работа, но я не убежден. Есть ли лучший способ форматировать поведение журнала по умолчанию?

ответ

5

Play использует Logback, вы можете настроить формат журнала в conf/logback.xml.

Журналы в log/application.log будут иметь штамп даты по умолчанию STDOUT. Добавьте %date в шаблон в приложении STDOUT.

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
    <encoder> 
     <pattern>%date %coloredLevel %logger{15} - %message%n%xException{10}</pattern> 
    </encoder> 
    </appender> 
+0

работал, спасибо! – srvy