Trait/Object

scala.sys.process

ProcessLogger

Related Docs: object ProcessLogger | package process

Permalink

trait ProcessLogger extends AnyRef

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
Source
ProcessLogger.scala
See also

scala.sys.process.ProcessBuilder

Linear Supertypes
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ProcessLogger
  2. AnyRef
  3. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def buffer[T](f: ⇒ T): T

    Permalink

    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

    Permalink

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

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

    Permalink

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