object Logger { def make_file(log_file: Option[Path], guard_time: Time = Time.min): Logger =
log_file match { case Some(file) => new File_Logger(file, guard_time) case None => new Logger
}
def make_progress(progress: => Progress, guard_time: Time = Time.min): Logger = { val t = guard_time new Logger { overrideval guard_time: Time = t overridedef output(msg: => String): Unit = if (progress != null) progress.echo(msg)
}
}
def make_system_log(progress: => Progress, options: Options, guard_time: Time = Time.min): Logger =
options.string("system_log") match { case"" => new Logger case"-" => make_progress(progress, guard_time = guard_time) case log_file => make_file(Some(Path.explode(log_file)), guard_time = guard_time)
}
}
class Logger { val guard_time: Time = Time.min def guard(t: Time): Boolean = t >= guard_time def output(msg: => String): Unit = {}
finaldef apply(msg: => String, time: Option[Time] = None): Unit = if (time.isEmpty || guard(time.get)) output(msg)
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.