source: Dev/branches/play-2.0.1/framework/project/PlayLogger.scala @ 322

Last change on this file since 322 was 322, checked in by hendrikvanantwerpen, 13 years ago

Added Play! framework and application with Jena dependency. Working on
the basic things now (login/register), after that start implementing
our data model.

File size: 1.3 KB
Line 
1package sbt
2
3object InPlaceLogger {
4 
5  private var lastMessage: String = null
6 
7  def log(message: String) {
8    val logged = "[info] " + message + "\r"
9    print(logged)
10    lastMessage = logged
11  }
12 
13  def clear() {
14    if(lastMessage != null) {
15      print(" " * lastMessage.size + "\r")
16      lastMessage = null
17    }
18  }
19 
20}
21
22object PlayLogManager {
23 
24  def default(extra: ScopedKey[_] => Seq[AbstractLogger]) = new PlayLogManager(extra)
25 
26}
27
28class PlayLogManager(extra: ScopedKey[_] => Seq[AbstractLogger]) extends LogManager {
29 
30  val screen = LogManager.defaultScreen
31  val backed = LogManager.defaultBacked()
32 
33  def apply(data: Settings[Scope], state: State, task: ScopedKey[_], to: java.io.PrintWriter): Logger = {
34    new FilterLogger(
35      delegate = LogManager.defaultLogger(data, state, task, screen, backed(to), extra(task).toList).asInstanceOf[AbstractLogger]
36    ) {
37
38      override def log(level: Level.Value, message: => String) {
39        if(atLevel(level)) {
40          InPlaceLogger.clear()
41          if(filtered(message)) {
42            InPlaceLogger.log(message)
43          } else {
44            super.log(level, message)
45          }
46        }
47      }
48
49      def filtered(message: String) = {
50        message.startsWith("Resolving ") && message.endsWith("...")
51      }
52
53    }
54  }
55}
Note: See TracBrowser for help on using the repository browser.