J'essaie de construire un projet Scala avec sbt , donc j'exécute une commande:
sbt clean test > log.log
Ce qui signifie que tous les messages que l'outil sbt écrit dans la console Windows doivent être écrits dans le fichier "log.log". Mais parfois, j'obtiens stacktrace écrit sur la console et non dans le fichier:
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
Pourquoi la commande ">" ne redirige-t-elle pas tous les messages vers un fichier?
2>&1
votre réponse et1<&2
le lien? Je l'ai toujours vu comme vous le souhaitez, et l'autre sens a également du sens (rediriger simplement "entrée" au lieu de "sortie" mais apparaissant de la même manière), mais il est intéressant de voir le deuxième choix.2>&1
dit que la sortie de STDERR devrait être redirigée vers la même sortie que STDOUT.1<&2
dit que la sortie de STDERR doit être utilisée comme entrée pour STDOUT. Les deux produisent le même résultat et sont simplement une question de préférence2>&1
après le> log.log
.