Several months ago, Play! secretly added emoji support in the test logs. To add this revolutionary feature to your project, throw play.Project.emojiLogs
in your project’s settings.
Image may be NSFW.
Clik here to view.
James Roper cautions that the feature is unsupported and may be removed, so you may rather to include it directly in your Build.scala
:
val emojiLogs = logManager ~= { lm => new LogManager { def apply(data: sbt.Settings[Scope], state: State, task: Def.ScopedKey[_], writer: java.io.PrintWriter) = { val l = lm.apply(data, state, task, writer) val FailuresErrors = "(?s).*(\\d+) failures?, (\\d+) errors?.*".r new Logger { def filter(s: String) = { val filtered = s.replace("\033[32m+\033[0m", "\u2705 ") .replace("\033[33mx\033[0m", "\u274C ") .replace("\033[31m!\033[0m", "\uD83D\uDCA5 ") filtered match { case FailuresErrors("0", "0") => filtered + " \uD83D\uDE04" case FailuresErrors(_, _) => filtered + " \uD83D\uDE22" case _ => filtered } } def log(level: Level.Value, message: => String) = l.log(level, filter(message)) def success(message: => String) = l.success(message) def trace(t: => Throwable) = l.trace(t) override def ansiCodesSupported = l.ansiCodesSupported } } } } // and your project: val yourProject = play.Project("sample", appVersion, yourDependencies).settings( // ... your current settings ... emojiLogs ) |