summaryrefslogtreecommitdiff
path: root/main/api/src/mill/api/Logger.scala
blob: 4ae6e74d59b61f3096d6edda92a401c8c7237a14 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package mill.api

import java.io._

/**
  * The standard logging interface of the Mill build tool.
  *
  * Contains these primary logging methods, in order of increasing importance:
  *
  * - `debug` : internal debug messages normally not shown to the user;
  * mostly useful when debugging issues
  *
  * - `ticker`: short-lived logging output where consecutive lines over-write
  * each other; useful for information which is transient and disposable
  *
  * - `info`: miscellaneous logging output which isn't part of the main output
  * a user is looking for, but useful to provide context on what Mill is doing
  *
  * - `error`: logging output which represents problems the user should care
  * about
  *
  *
  * Also contains the two forwarded stdout and stderr streams, for code executed
  * by Mill to use directly. Typically these correspond to the stdout and stderr,
  * but when `show` is used both are forwarded to stderr and stdout is only
  * used to display the final `show` output for easy piping.
  */
trait Logger {
  def colored: Boolean

  val errorStream: PrintStream
  val outputStream: PrintStream
  val inStream: InputStream

  def info(s: String): Unit
  def error(s: String): Unit
  def ticker(s: String): Unit
  def debug(s: String): Unit

  def close(): Unit = ()
}