2017-09-02 9 views
0

スカラースクリプトでログ出力を処理したい。このように:
java -jar app.jar | log.scまたはjava -jar app.jar | amm log.sc app.jar印刷ログをlog.scに書き込む方法は?パイプオペレータでsbt/amm scalaスクリプトを使用するには?

モチベーション

出力ストリームを処理するためにいくつかのよりスマートな方法でjava -jar app.jar > app.logを交換してください。
これ以降、出力ストリームを別のファイルに保存したいと考えています。

ありがとうございました。この例の

UPDATE

思う:私は印刷ログを扱うことができる方法

アセンブリ Loop.jar
object Main extends App { 
    var i = 0L 
    while(true) { 
    println("hello " + i) 
    i += 1 
    } 
} 

それは、日付で提出するには?

答えて

0

Ammoniteスクリプトの中にJavaの呼び出しを入れないのはなぜですか?

val log = %%('java,"-jar","app.jar")

ログ変数は、出力をキャプチャし、スクリプトはそれを名前のログに記録ファイルを書き込むことができます。

私は何か似たような例を見ることができますhereanother repositoryの付属スクリプトがあります。ここでは&という名前のログファイルを作成します。

+0

'app.jar'は大規模なWebプロジェクトです。 'val log'は結果をメモリに保持すべきではありません。java.lang.OutOfMemoryError例外が発生したようです。いくつかの例を書くことができますか? – LoranceChen

+0

私が最初に理解したのは、あなたがアプリケーションを起動するときに端末の出力をキャプチャしたかったということです。これは私が上で提案したものです。しかし、あなたの例では、あなたがキャプチャしたいかなりの出力を行っているこのアプリを持っています。それは私にとっては、アンモナイトはあなたが望むものではないようです。これは古典的なログの使用例のように聞こえます。このような[Scala wrapper](https://github.com/typesafehub/scala-logging)のようなslf4jのようなJava/Scalaのログを処理するための多くの良いオプションを調べるべきです。 –

関連する問題