comscom@Wiki
コマンドプロンプトでログが流れて消えてしまうの
最終更新:
Bot(ページ名リンク)
-
view
たくさんの子プロジェクトを指定したpom.xml使ってmvn installとかすると、コマンドプロンプトに表示されるログの最初のほうが消えちゃうの。
これじゃWARNINGとか確認できないわ。
これじゃWARNINGとか確認できないわ。
ログをファイルに出力してもらう
そんなときは、コマンドに以下の通り追加してみるですよ。
>logfile.log
これがログをファイルに書き込んでくれる呪文というかコマンド。
logfileはどんな名前でもお好きなものを。
logfileはどんな名前でもお好きなものを。
使い方の例
例えばZドライブにあるmaventestというプロジェクトをinstallするとき
Z:\maventest> mvn install >001.log
こうすると、maventestディレクトリ直下に001と言う名前のlogファイルが作成されて、そこにinstall実行のログが書かれていくです。
これやるとコマンドプロンプトでログが流れないので、終わったかどうか横目で確認は難しくなりますが、ログを最初から見ることができるので便利。
これはなに?
お願いした実行プログラムさんの標準出力先を変更しているです。
普段わからず使ってましたが、コマンドプロンプトが標準出力先になっているから実行するとだかだかログが流れるわけです。
なのでその出力先を実行時に変更してしまうということですね。
なのでその出力先を実行時に変更してしまうということですね。
「>」をつけたあとに出力先を書くのです。
そうすると「標準出力」のログを書いてくれます。
そうすると「標準出力」のログを書いてくれます。
つまり、コマンドプロンプトさんのコマンドです。mvnのってわけじゃないです。
エラーの出力も一緒にファイルに書いてもらいたいのなら
2>&1
をつけるです。
つまり
Z:\maventest> mvn install >002.log 2>&1
2とか1とかって何だよって思ったら、
2は標準エラー出力だけよろしく!ってお願い。
指定しないのと0と1は標準出力なんですって。
2は標準エラー出力だけよろしく!ってお願い。
指定しないのと0と1は標準出力なんですって。
なるほど2>&1ってのはリダイレクタってことですね!
にしても、maven2の出力。javaのログだったりmavenのだったりそのほか色々だったりでどれが標準出力のログでどれがエラーのログなのかわからないわ。。。(オイ
とりあえずmvn exec:javaを実行した時は、実行ログがコマンドプロンプトに表示されなかったので、「>log001.log」ってくっつけて実行したら、log001.logに実行結果(と言うかmainメソッドの中のsystem.out.print()の出力)が出力されててうれしかったわ。
でもOpenJPAのログとかはコマンドプロンプトに表示されるの。
これが「2>&1」をつけてみると、全部ログファイルに出力されて、コマンドプロンプトには何も表示されない。
これが「2>&1」をつけてみると、全部ログファイルに出力されて、コマンドプロンプトには何も表示されない。
ちなみに
>log001.log 2>log002.log
っていうのをつけると、2つのログが分かれてファイルに出力されたわ!
うーん。
イマイチどれがどれなのかまだわからないのは、openJpaさんとかmaven2さんがどういうログのはき方してるのかを知らないからなのね。。。
学ばないと。
イマイチどれがどれなのかまだわからないのは、openJpaさんとかmaven2さんがどういうログのはき方してるのかを知らないからなのね。。。
学ばないと。
注意
同じ名前のlogファイルを指定すると、さっくり上書きされますご注意。
他の方法
コマンドプロンプトからの実行なら、表示するバッファサイズを変更することで対応もできるかも?
プロパティ>「オプション」タグ>「コマンドの履歴」の中の
バッファサイズをでかくする。
とかね?
バッファサイズをでかくする。
とかね?
でもファイルとして保存したいなら上のように指定するほうがいいのかな。
他にもフリーソフトとかでログをファイルに落としてくれるのがあるらしい。<試してないけれど。。
他にもフリーソフトとかでログをファイルに落としてくれるのがあるらしい。<試してないけれど。。
メモ
ログログログって連呼しているけれど、ログって呼び方は正しくないのかなあ。
コンソールにだかだか出てくるものをすべてログと呼ぶ癖が。
むう。
むう。