Ich versuche, ein Scala- Projekt mit sbt zu erstellen , daher führe ich einen Befehl aus:
sbt clean test > log.log
Das bedeutet, dass alle Nachrichten, die das sbt-Tool in die Windows-Konsole schreibt, in die Datei "log.log" geschrieben werden sollten. Aber manchmal bekomme ich Stacktrace auf die Konsole geschrieben und nicht in die Datei:
C:\path>sbt clean test > log.log
java.lang.ExceptionInInitializerError
at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24)
at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24)
at scala.concurrent.impl.ExecutionContextImpl$AdaptedForkJoinTask.exec(ExecutionContextImpl.scala:121)
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
Caused by: java.lang.ClassCastException: Class org.infinispan.configuration.parsing.Parser60 does not implement org.infinispan.configuration.parsing.ConfigurationParser
Warum leitet der Befehl ">" nicht alle Nachrichten in eine Datei um?
quelle
2>&1
Ihrer Antwort und1<&2
dem Link? Ich habe es immer so gesehen, und der andere Weg macht auch Sinn (nur "Eingabe" statt "Ausgabe" umleiten, aber ansonsten gleich aussehen), aber es ist interessant, die zweite Wahl zu sehen.2>&1
besagt, dass die Ausgabe von STDERR an dieselbe Ausgabe wie STDOUT umgeleitet werden soll.1<&2
bedeutet, dass die Ausgabe von STDERR als Eingabe für STDOUT verwendet werden sollte. Beide produzieren das gleiche Ergebnis und sind einfach eine Frage der Präferenz2>&1
nach dem setzen müssen> log.log
.