scala.sys.process

ProcessLogger

trait ProcessLogger extends AnyRef

Encapsulates the output and error streams of a running process. This is used by ProcessBuilder when starting a process, as an alternative to 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
Source
ProcessLogger.scala
See also

ProcessBuilder

Linear Supertypes
AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Hide All
  2. Show all
  1. ProcessLogger
  2. AnyRef
  3. Any
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract 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.

  2. abstract def err(s: ⇒ String): Unit

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

  3. abstract def out(s: ⇒ String): Unit

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