ProcessLogger

Encapsulates the output and error streams of a running process. This is used by scala.sys.process.ProcessBuilder when starting a process, as an alternative to scala.sys.process.ProcessIO, which can be more difficult to use. Note that a ProcessLogger will be used to create a ProcessIO anyway. The object BasicIO has some functions to do that.

Here is an example that counts the number of lines in the normal and error output of a process:

import scala.sys.process._

var normalLines = 0
var errorLines = 0
val countLogger = ProcessLogger(line => normalLines += 1,
                               line => errorLines += 1)
"find /etc" ! countLogger
See also
Companion
object
Source
ProcessLogger.scala
class Object
trait Matchable
class Any

Value members

Abstract methods

def buffer[T](f: => T): T

If a process is begun with one of these ProcessBuilder methods:

If a process is begun with one of these ProcessBuilder methods:

def !(log: ProcessLogger): Int
def !<(log: ProcessLogger): Int

The run will be wrapped in a call to buffer. This gives the logger an opportunity to set up and tear down buffering. At present the library implementations of ProcessLogger simply execute the body unbuffered.

Source
ProcessLogger.scala
def err(s: => String): Unit

Will be called with each line read from the process error stream.

Will be called with each line read from the process error stream.

Source
ProcessLogger.scala
def out(s: => String): Unit

Will be called with each line read from the process output stream.

Will be called with each line read from the process output stream.

Source
ProcessLogger.scala